From 76a42eaba0307accce867b21d302cc6586bc3ad3 Mon Sep 17 00:00:00 2001 From: Eric Paris Date: Wed, 14 Oct 2015 18:13:34 -0400 Subject: Better support golang flag short values In golang flags -bob and --bob are the same thing. Not so in pflags. But when a golang flag was just -b or --b we would still only support --b. This was a little awkward to users. If a golang flag was declared as a single character, support both the -b and --b versions in the pflag version. --- golangflag.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/golangflag.go b/golangflag.go index a8c24ef..b056147 100644 --- a/golangflag.go +++ b/golangflag.go @@ -61,6 +61,9 @@ func (v *flagValueWrapper) Type() string { } // PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag +// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei +// with both `-v` and `--v` in flags. If the golang flag was more than a single +// character (ex: `verbose`) it will only be accessible via `--verbose` func PFlagFromGoFlag(goflag *goflag.Flag) *Flag { // Remember the default value as a string; it won't change. flag := &Flag{ @@ -71,6 +74,10 @@ func PFlagFromGoFlag(goflag *goflag.Flag) *Flag { //DefValue: goflag.DefValue, DefValue: goflag.Value.String(), } + // Ex: if the golang flag was -v, allow both -v and --v to work + if len(flag.Name) == 1 { + flag.Shorthand = flag.Name + } if fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() { flag.NoOptDefVal = "true" } -- cgit v1.2.3