Skip to content

Commit 924e8b8

Browse files
committed
Fix parsing boolean flags with explicit values
Fixes #2590
1 parent 222d110 commit 924e8b8

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

utils/args_parser.go

+1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ func (p *ArgsParser) Parse(args []string) ([]string, error) {
102102
}
103103
} else if strings.HasPrefix(arg, "--") {
104104
flagName = arg
105+
flagValue = ""
105106
eq := strings.IndexByte(arg, '=')
106107
hasFlagValue = eq >= 0
107108
if hasFlagValue {

utils/args_parser_test.go

+12
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,18 @@ func TestArgsParser_BoolValue(t *testing.T) {
118118
equal(t, "yes pls", p.Value("--draft"))
119119
}
120120

121+
func TestArgsParser_BoolValue_multiple(t *testing.T) {
122+
p := NewArgsParser()
123+
p.RegisterBool("--draft")
124+
p.RegisterBool("--prerelease")
125+
args := []string{"--draft=false", "--prerelease"}
126+
rest, err := p.Parse(args)
127+
equal(t, nil, err)
128+
equal(t, []string{}, rest)
129+
equal(t, false, p.Bool("--draft"))
130+
equal(t, true, p.Bool("--prerelease"))
131+
}
132+
121133
func TestArgsParser_Shorthand(t *testing.T) {
122134
p := NewArgsParser()
123135
p.RegisterValue("--origin", "-o")

0 commit comments

Comments
 (0)