diff options
| author | Eric Paris <[email protected]> | 2015-10-14 18:13:34 -0400 |
|---|---|---|
| committer | Steve Francia <[email protected]> | 2015-12-18 08:45:27 -0500 |
| commit | 76a42eaba0307accce867b21d302cc6586bc3ad3 (patch) | |
| tree | 538fe50038d772d1796e34c27cb4a9ef0a2f6f16 /golangflag.go | |
| parent | 08b1a584251b5b62f458943640fc8ebd4d50aaa5 (diff) | |
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.
Diffstat (limited to 'golangflag.go')
| -rw-r--r-- | golangflag.go | 7 |
1 files changed, 7 insertions, 0 deletions
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" } |
