From bcedef83d3e3c3c565c7cd81f8284b7776e268bc Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Wed, 24 Sep 2014 12:05:57 -0700 Subject: [PATCH] etcd: override flag usage func No need to communicate deprecated flags, so prevent them from getting printed in the usage info. --- main.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/main.go b/main.go index a57b3524b..994f7a0c9 100644 --- a/main.go +++ b/main.go @@ -91,6 +91,7 @@ func init() { } func main() { + flag.CommandLine.Usage = usageWithIgnoredFlagsFunc(flag.CommandLine, deprecated) flag.Parse() setFlagsFromEnv() @@ -366,3 +367,21 @@ func (df *deprecatedFlag) Set(s string) error { func (df *deprecatedFlag) String() string { return "" } + +func usageWithIgnoredFlagsFunc(fs *flag.FlagSet, ignore []string) func() { + iMap := make(map[string]struct{}, len(ignore)) + for _, name := range ignore { + iMap[name] = struct{}{} + } + + return func() { + fs.VisitAll(func(f *flag.Flag) { + if _, ok := iMap[f.Name]; ok { + return + } + + format := " -%s=%s: %s\n" + fmt.Fprintf(os.Stderr, format, f.Name, f.DefValue, f.Usage) + }) + } +}