summaryrefslogtreecommitdiffstats
path: root/client/go/cmd/config.go
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-08-31 16:11:08 +0200
committerMartin Polden <mpolden@mpolden.no>2021-08-31 16:17:22 +0200
commit33d2f7ad62958addde4e115f96e53a8108110cf2 (patch)
tree2d1c9cf08185cd354d204e26c2bccd3741b0e792 /client/go/cmd/config.go
parent4600b2ce77ef3fad8bb7622a7d7363107e077bdd (diff)
Extract print utils
Diffstat (limited to 'client/go/cmd/config.go')
-rw-r--r--client/go/cmd/config.go38
1 files changed, 22 insertions, 16 deletions
diff --git a/client/go/cmd/config.go b/client/go/cmd/config.go
index ca4e416a172..544c95aa9f1 100644
--- a/client/go/cmd/config.go
+++ b/client/go/cmd/config.go
@@ -79,16 +79,22 @@ func printOption(option string) {
log.Printf("%s = %s", option, value)
}
-func configDir(application string) (string, error) {
+func configDir(application string) string {
home := os.Getenv("VESPA_CLI_HOME")
if home == "" {
var err error
home, err = os.UserHomeDir()
if err != nil {
- return "", err
+ printErr(err, "Could not determine configuration directory")
+ return ""
}
}
- return filepath.Join(home, ".vespa", application), nil
+ configDir := filepath.Join(home, ".vespa", application)
+ if err := os.MkdirAll(configDir, 0755); err != nil {
+ printErr(err, "Could not create config directory")
+ return ""
+ }
+ return configDir
}
func bindFlagToConfig(option string, command *cobra.Command) {
@@ -96,10 +102,8 @@ func bindFlagToConfig(option string, command *cobra.Command) {
}
func readConfig() {
- configDir, err := configDir("")
- if err != nil {
- log.Print(color.Red("Error:"), "Could not determine configuration directory")
- log.Print(color.Brown(err))
+ configDir := configDir("")
+ if configDir == "" {
return
}
viper.SetConfigName(configName)
@@ -109,13 +113,12 @@ func readConfig() {
for option, command := range flagToConfigBindings {
viper.BindPFlag(option, command.PersistentFlags().Lookup(option))
}
- err = viper.ReadInConfig()
+ err := viper.ReadInConfig()
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
return // Fine
}
if err != nil {
- log.Print(color.Red("Error:"), "Could read configuration")
- log.Print(color.Brown(err))
+ printErr(err, "Could not read configuration")
}
}
@@ -150,25 +153,28 @@ func setOption(option, value string) error {
}
func writeConfig() {
- configDir, err := configDir("")
- if err != nil {
- log.Fatalf("Could not decide config directory: %s", color.Red(err))
+ configDir := configDir("")
+ if configDir == "" {
+ return
}
if !util.PathExists(configDir) {
if err := os.MkdirAll(configDir, 0700); err != nil {
- log.Fatalf("Could not create %s: %s", color.Cyan(configDir), color.Red(err))
+ printErr(err, "Could not create ", color.Cyan(configDir))
+ return
}
}
configFile := filepath.Join(configDir, configName+"."+configType)
if !util.PathExists(configFile) {
if _, err := os.Create(configFile); err != nil {
- log.Fatalf("Could not create %s: %s", color.Cyan(configFile), color.Red(err))
+ printErr(err, "Could not create ", color.Cyan(configFile))
+ return
}
}
if err := viper.WriteConfig(); err != nil {
- log.Printf("Could not write config: %s", color.Red(err))
+ printErr(err, "Could not write config")
+ return
}
}