cobra: unable to redefine ‘h’ shorthand
“Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files”
I’m currently using Cobra in the MediaWiki CLI project and recently came across an error while trying to auto-generate docs.
panic: unable to redefine 'h' shorthand in "login" flagset: it's already used for "hostname" flag goroutine 1 [running]: github.com/spf13/pflag.(*FlagSet).AddFlag(0xc0000b5d00, 0xc00053d680) /firstname.lastname@example.org/flag.go:874 +0x6f0Code language: PHP (php)
I’m not actually trying to redefine this flag, but it looks like by default cobra always uses the
-h flag for a help command, if you don’t define a help flag that doesn’t have the shorthand.
Cobra does this in the command execute method, meaning you can set your own help command, and the default will not be set.
InitDefaultHelpFlag method looks for any existing flags on a command called
help and will only set its default if one does not already exist.
In order to override this default help command in your commands, all you need to do is set a flag called help, without the shorthand.
Your help flag will no longer have the shorthand, and you’ll no longer get such conflicts.