template / commit
Fixed issue where a weird character appeared after CLI output.
main.go | 53 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/main.go b/main.go index d261eb5..82e9128 100644 --- a/main.go +++ b/main.go @@ -115,6 +115,7 @@ func main() { for _, p := range config.Profiles { fmt.Printf(" %v: %v\n", p.Name, p.Description) } + fmt.Println() return nil }, }, @@ -145,6 +146,7 @@ func main() { yamlText := writer.String() fmt.Printf("Profile '%v':\n", settings.profile) fmt.Println(yamlText) + fmt.Println() return nil }, }, @@ -163,6 +165,7 @@ func main() { if err != nil { return fmt.Errorf("error saving default config: %v", err) } + fmt.Println() return nil }, }, @@ -170,7 +173,8 @@ func main() { Name: "version", Usage: "print version", Action: func(c *cli.Context) error { - fmt.Printf("Version: %v", Version) + fmt.Print(Version) + fmt.Println() return nil }, }, @@ -184,6 +188,7 @@ func main() { if err != nil { return fmt.Errorf("error in main logic: %w", err) } + fmt.Println() return nil }, } @@ -267,37 +272,47 @@ func createSettings( fullConfigPath := getFullPath(settings.configFilePath, *usr) settings.fullConfigPath = fullConfigPath - var config Config + var fullConfig Config if settings.useDefaultConfig { - config = defaultConfig() + fullConfig = defaultConfig() } else { - config, err = loadConfig(fullConfigPath) + config, err := loadConfig(fullConfigPath) if err != nil { return settings, fmt.Errorf("error loading config from %v: %w", fullConfigPath, err) } fmt.Printf("Loaded config from %v\n", fullConfigPath) // load user config, if present - fullUserConfigPath := getFullPath(settings.userConfigPath, *usr) - _, err = os.Stat(fullUserConfigPath) - if err == nil { - userConfig, err := loadConfig(fullUserConfigPath) - if err != nil { - return settings, fmt.Errorf("error loading user config from %v: %w", fullUserConfigPath, err) - } else { - fmt.Printf("Loaded user config from %v, combining with global config\n", fullUserConfigPath) - config, err = mergeConfigs(config, userConfig) - if err != nil { - return settings, fmt.Errorf("error merging configs: %w", err) - } - } - } + fullConfig = loadAndMergeUserConfig(settings.userConfigPath, usr, config) } - settings.config = config + settings.config = fullConfig return settings, nil } +func loadAndMergeUserConfig(userConfigPath string, usr *user.User, globalConfig Config) Config { + fullUserConfigPath := getFullPath(userConfigPath, *usr) + _, err := os.Stat(fullUserConfigPath) + if err != nil { + fmt.Printf("User config file not found at %v, skipping\n", fullUserConfigPath) + return globalConfig + } + + userConfig, err := loadConfig(fullUserConfigPath) + if err != nil { + fmt.Printf("Error loading user config from %v: %v\n", fullUserConfigPath, err) + return globalConfig + } + + fmt.Printf("Loaded user config from %v, combining with global config\n", fullUserConfigPath) + fullConfig, err := mergeConfigs(globalConfig, userConfig) + if err != nil { + fmt.Printf("Error merging configs: %v\n", err) + } + + return fullConfig +} + func readEnvVars() (EnvVarValues, error) { envVarValues := EnvVarValues{}