diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-08-31 15:57:17 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2021-08-31 16:01:20 +0200 |
commit | 70a33945026caff031359a4acadbca53b1b081e5 (patch) | |
tree | 151e68dd334812980c356fc2c47e60a6134e7afd /client/go/cmd/config.go | |
parent | 371836c15a63e120ac5d0ba6c44cc49d85593eea (diff) |
Fix flag-config binding
When binding flags to config, only one flag reference can be bound per flag
name. I.e. we have to choose between flags being inherited by sub-commands that
don't need them, and the ability to bind them to config.
Diffstat (limited to 'client/go/cmd/config.go')
-rw-r--r-- | client/go/cmd/config.go | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/client/go/cmd/config.go b/client/go/cmd/config.go index d62e2b20e5a..ca4e416a172 100644 --- a/client/go/cmd/config.go +++ b/client/go/cmd/config.go @@ -22,7 +22,7 @@ const ( configType = "yaml" ) -var flagToConfigBindings map[string][]*cobra.Command = make(map[string][]*cobra.Command) +var flagToConfigBindings map[string]*cobra.Command = make(map[string]*cobra.Command) func init() { rootCmd.AddCommand(configCmd) @@ -92,7 +92,7 @@ func configDir(application string) (string, error) { } func bindFlagToConfig(option string, command *cobra.Command) { - flagToConfigBindings[option] = append(flagToConfigBindings[option], command) + flagToConfigBindings[option] = command } func readConfig() { @@ -106,10 +106,8 @@ func readConfig() { viper.SetConfigType(configType) viper.AddConfigPath(configDir) viper.AutomaticEnv() - for option, commands := range flagToConfigBindings { - for _, command := range commands { - viper.BindPFlag(option, command.PersistentFlags().Lookup(option)) - } + for option, command := range flagToConfigBindings { + viper.BindPFlag(option, command.PersistentFlags().Lookup(option)) } err = viper.ReadInConfig() if _, ok := err.(viper.ConfigFileNotFoundError); ok { |