diff --git a/utils/args_parser.go b/utils/args_parser.go index 089cc270e5356c7fd12c9bc2654c00675b3cc797..b0fb8d02812142195d1913ae5c3a121c3b349d63 100644 --- a/utils/args_parser.go +++ b/utils/args_parser.go @@ -102,6 +102,7 @@ func (p *ArgsParser) Parse(args []string) ([]string, error) { } } else if strings.HasPrefix(arg, "--") { flagName = arg + flagValue = "" eq := strings.IndexByte(arg, '=') hasFlagValue = eq >= 0 if hasFlagValue { diff --git a/utils/args_parser_test.go b/utils/args_parser_test.go index f38e9e9e6dd68b35d5dbe50e87e72f5b598569c1..b7689fd520835ec2bcc0aa0784b34f2b64e799c4 100644 --- a/utils/args_parser_test.go +++ b/utils/args_parser_test.go @@ -118,6 +118,18 @@ func TestArgsParser_BoolValue(t *testing.T) { equal(t, "yes pls", p.Value("--draft")) } +func TestArgsParser_BoolValue_multiple(t *testing.T) { + p := NewArgsParser() + p.RegisterBool("--draft") + p.RegisterBool("--prerelease") + args := []string{"--draft=false", "--prerelease"} + rest, err := p.Parse(args) + equal(t, nil, err) + equal(t, []string{}, rest) + equal(t, false, p.Bool("--draft")) + equal(t, true, p.Bool("--prerelease")) +} + func TestArgsParser_Shorthand(t *testing.T) { p := NewArgsParser() p.RegisterValue("--origin", "-o")