From cfd553f19144450e5fef25080aa469285ff96b88 Mon Sep 17 00:00:00 2001 From: Eric Paris Date: Wed, 27 May 2015 16:38:43 -0400 Subject: Slight code cleanup parsing long flags --- flag.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/flag.go b/flag.go index 9f16733..0070b93 100644 --- a/flag.go +++ b/flag.go @@ -529,14 +529,16 @@ func (f *FlagSet) parseLongArg(s string, args []string) (a []string, err error) return } var value string - if len(split) == 1 { - if bv, ok := flag.Value.(boolFlag); !ok || !bv.IsBoolFlag() { - err = f.failf("flag needs an argument: %s", s) - return - } + if len(split) == 2 { + // '--flag=arg' + value = split[1] + } else if bv, ok := flag.Value.(boolFlag); ok && bv.IsBoolFlag() { + // '--flag' (where flag is a bool) value = "true" } else { - value = split[1] + // '--flag' (where flag was not a bool) + err = f.failf("flag needs an argument: %s", s) + return } err = f.setFlag(flag, value, s) return -- cgit v1.2.3