Browse Source

Fix error message printed twice on invalid subcommand flag

cmd.Fset.Parse prints the message already.
Also stop exiting with 2 when a subcommand is run with -h / --help.
pull/83/head
Gregor Düster 8 months ago
parent
commit
98bd02029c
No known key found for this signature in database
GPG Key ID: 1B4181FC97673B9D
  1. 5
      main.go
  2. 4
      testdata/scripts/cmds.txt

5
main.go

@ -219,9 +219,8 @@ func main1() int {
cmd.Fset.Init(cmdName, flag.ContinueOnError) cmd.Fset.Init(cmdName, flag.ContinueOnError)
cmd.Fset.Usage = cmd.usage cmd.Fset.Usage = cmd.usage
if err := cmd.Fset.Parse(args[1:]); err != nil { if err := cmd.Fset.Parse(args[1:]); err != nil {
if err != flag.ErrHelp { if err == flag.ErrHelp {
fmt.Fprintf(os.Stderr, "flag: %v\n", err) return 0
cmd.Fset.Usage()
} }
return 2 return 2
} }

4
testdata/scripts/cmds.txt vendored

@ -17,12 +17,12 @@ stdout '^v0\.8'
stderr '-badflag' stderr '-badflag'
stderr '^usage: fdroidcl \[-h' stderr '^usage: fdroidcl \[-h'
! fdroidcl search -h fdroidcl search -h
stderr '^usage: fdroidcl search .*regexp' stderr '^usage: fdroidcl search .*regexp'
stderr '^Search available apps.' stderr '^Search available apps.'
stderr '-i.*Filter installed apps' stderr '-i.*Filter installed apps'
! fdroidcl install -h fdroidcl install -h
stderr 'When given no arguments' stderr 'When given no arguments'
! fdroidcl ! fdroidcl

Loading…
Cancel
Save