From 98bd02029c5ab6fa9cd8617b4f407baefc47f5f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gregor=20D=C3=BCster?= Date: Sat, 2 Aug 2025 10:53:34 +0200 Subject: [PATCH] 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. --- main.go | 5 ++--- testdata/scripts/cmds.txt | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 2f4dab0..ba9a947 100644 --- a/main.go +++ b/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 } diff --git a/testdata/scripts/cmds.txt b/testdata/scripts/cmds.txt index fb24d19..1fc3518 100644 --- a/testdata/scripts/cmds.txt +++ b/testdata/scripts/cmds.txt @@ -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