diff --git a/configtools.go b/configtools.go index b54cccc232a4a88503b34648383666f05d2513a2..b970fe03ceb672ce097326c8d2d04d9d9b2a4f49 100644 --- a/configtools.go +++ b/configtools.go @@ -5,6 +5,7 @@ import ( "log" "os" "path" + "reflect" "strings" "github.com/spf13/cobra" @@ -123,7 +124,14 @@ func bindFlags(cmd *cobra.Command) { configName := f.Name if !f.Changed && viper.IsSet(configName) { val := viper.Get(configName) - cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val)) + if reflect.TypeOf(val).String() == "string" { + cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val)) + } else { //Assume array of string + valArray := val.([]interface{}) + for _, v := range valArray { + cmd.Flags().Set(f.Name, fmt.Sprintf("%v", v)) + } + } } }) }