diff --git a/etcdctl/ctlv3/command/global.go b/etcdctl/ctlv3/command/global.go index ce607e82a..e52442ff8 100644 --- a/etcdctl/ctlv3/command/global.go +++ b/etcdctl/ctlv3/command/global.go @@ -101,8 +101,19 @@ type clientConfig struct { acfg *authCfg } +type discardValue struct{} + +func (*discardValue) String() string { return "" } +func (*discardValue) Set(string) error { return nil } +func (*discardValue) Type() string { return "" } + func clientConfigFromCmd(cmd *cobra.Command) *clientConfig { fs := cmd.InheritedFlags() + + // silence "pkg/flags: unrecognized environment variable ETCDCTL_WATCH_KEY=foo" warnings + // silence "pkg/flags: unrecognized environment variable ETCDCTL_WATCH_RANGE_END=bar" warnings + fs.AddFlag(&pflag.Flag{Name: "watch-key", Value: &discardValue{}}) + fs.AddFlag(&pflag.Flag{Name: "watch-range-end", Value: &discardValue{}}) flags.SetPflagsFromEnv("ETCDCTL", fs) debug, err := cmd.Flags().GetBool("debug")