diff --git a/configtools.go b/configtools.go index b970fe03ceb672ce097326c8d2d04d9d9b2a4f49..4332a08e5f5963a478ce996a766ada67f87c9da8 100644 --- a/configtools.go +++ b/configtools.go @@ -124,13 +124,15 @@ func bindFlags(cmd *cobra.Command) { configName := f.Name if !f.Changed && viper.IsSet(configName) { val := viper.Get(configName) - if reflect.TypeOf(val).String() == "string" { - cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val)) - } else { //Assume array of string + valType := reflect.TypeOf(val).String() + //support string arrays + if (valType == "[]interface {}") { valArray := val.([]interface{}) for _, v := range valArray { cmd.Flags().Set(f.Name, fmt.Sprintf("%v", v)) } + } else { //Assume scalar + cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val)) } } })