Create Golang version devtool #7
@ -47,16 +47,31 @@ func GetConfig() (*Config, error) {
|
|||||||
file, err := getConfigFile(ConfigFileName)
|
file, err := getConfigFile(ConfigFileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == ErrConfigNotInitialized {
|
if err == ErrConfigNotInitialized {
|
||||||
config, err := initializeConfig(file)
|
return initializeConfig(file)
|
||||||
if err != nil {
|
|
||||||
return config, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
return getConfig(file)
|
return getConfig(file)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (config *Config) Summarize() {
|
||||||
|
fmt.Printf("The project path is %s\nThe volume path is %s\n", config.ProjectPath, config.VolumePath)
|
||||||
|
if config.LoginCredential.Username != "" && config.LoginCredential.Password != "" {
|
||||||
|
fmt.Printf("Login credential [%s] is configured\n", config.LoginCredential.Username)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(config.RepositoryConfig) > 0 {
|
||||||
|
for name := range config.RepositoryConfig {
|
||||||
|
fmt.Printf("Repository [%s] is added\n", name)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
fmt.Println("No repository is added")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func initializeConfig(w io.WriteCloser) (*Config, error) {
|
func initializeConfig(w io.WriteCloser) (*Config, error) {
|
||||||
config := &Config{}
|
config := &Config{}
|
||||||
fmt.Printf("Set the project path: ")
|
fmt.Printf("Set the project path: ")
|
||||||
@ -109,13 +124,23 @@ func initializeConfig(w io.WriteCloser) (*Config, error) {
|
|||||||
return config, nil
|
return config, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getConfig(f io.Reader) (*Config, error) {
|
func getConfig(f *os.File) (*Config, error) {
|
||||||
config := &Config{}
|
config := &Config{}
|
||||||
bytes := make([]byte, 0)
|
|
||||||
_, err := f.Read(bytes)
|
info, err := f.Stat()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
bytes := make([]byte, info.Size())
|
||||||
|
n, err := f.Read(bytes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if n == 0 {
|
||||||
|
// The file exists, but it's empty file, so we need to initalize
|
||||||
|
return initializeConfig(f)
|
||||||
|
}
|
||||||
|
|
||||||
err = json.Unmarshal(bytes, &config)
|
err = json.Unmarshal(bytes, &config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -14,6 +14,8 @@ func main() {
|
|||||||
log.Fatalln(err)
|
log.Fatalln(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.Summarize()
|
||||||
|
|
||||||
// Init tasks
|
// Init tasks
|
||||||
|
|
||||||
taskItems := []tasks.Tasker{
|
taskItems := []tasks.Tasker{
|
||||||
|
Loading…
Reference in New Issue
Block a user