summaryrefslogtreecommitdiffstats
path: root/client/go/cmd/config.go
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-08-31 15:57:17 +0200
committerMartin Polden <mpolden@mpolden.no>2021-08-31 16:01:20 +0200
commit70a33945026caff031359a4acadbca53b1b081e5 (patch)
tree151e68dd334812980c356fc2c47e60a6134e7afd /client/go/cmd/config.go
parent371836c15a63e120ac5d0ba6c44cc49d85593eea (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.go10
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 {