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.Usage = cmd.usage
if err := cmd.Fset.Parse(args[1:]); err != nil {
if err != flag.ErrHelp {
fmt.Fprintf(os.Stderr, "flag: %v\n", err)
cmd.Fset.Usage()
if err == flag.ErrHelp {
return 0
}
return 2
}

4
testdata/scripts/cmds.txt vendored

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

Loading…
Cancel
Save