diff --git a/pkg/flags/flag.go b/pkg/flags/flag.go index ca2400524..d8f11c6a7 100644 --- a/pkg/flags/flag.go +++ b/pkg/flags/flag.go @@ -85,7 +85,8 @@ func UsageWithIgnoredFlagsFunc(fs *flag.FlagSet, ignore []string) func() { // environment variables. Environment variables take the name of the flag but // are UPPERCASE, have the prefix "ETCD_", and any dashes are replaced by // underscores - for example: some-flag => ETCD_SOME_FLAG -func SetFlagsFromEnv(fs *flag.FlagSet) (err error) { +func SetFlagsFromEnv(fs *flag.FlagSet) error { + var err error alreadySet := make(map[string]bool) fs.Visit(func(f *flag.Flag) { alreadySet[f.Name] = true @@ -101,7 +102,7 @@ func SetFlagsFromEnv(fs *flag.FlagSet) (err error) { } } }) - return + return err } // URLsFromFlags decides what URLs should be using two different flags diff --git a/pkg/flags/flag_test.go b/pkg/flags/flag_test.go index 85f53692c..5197777b8 100644 --- a/pkg/flags/flag_test.go +++ b/pkg/flags/flag_test.go @@ -71,13 +71,14 @@ func TestSetFlagsFromEnv(t *testing.T) { t.Errorf("flag %q=%q, want %q", f, got, want) } } +} +func TestSetFlagsFromEnvBad(t *testing.T) { // now verify that an error is propagated - fs = flag.NewFlagSet("testing", flag.ExitOnError) + fs := flag.NewFlagSet("testing", flag.ExitOnError) fs.Int("x", 0, "") os.Setenv("ETCD_X", "not_a_number") - err = SetFlagsFromEnv(fs) - if err == nil { + if err := SetFlagsFromEnv(fs); err == nil { t.Errorf("err=nil, want != nil") } }