aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--golangflag.go7
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"
}