Add DefaultValue text for flags
Allows a user to override the default value of a flag in the displayed help output. Ex: ``` cli.IntFlag{ Name: "foo, f", DefaultText: "random foo", Value: "bar", } ``` Running `(app.name) -h` will now yield: ``` --foo value (default: "random foo") ``` Fixes: #504
This commit is contained in:
7
flag.go
7
flag.go
@@ -730,7 +730,6 @@ func stringifyFlag(f Flag) string {
|
||||
needsPlaceholder := false
|
||||
defaultValueString := ""
|
||||
val := fv.FieldByName("Value")
|
||||
|
||||
if val.IsValid() {
|
||||
needsPlaceholder = val.Kind() != reflect.Bool
|
||||
defaultValueString = fmt.Sprintf(" (default: %v)", val.Interface())
|
||||
@@ -740,6 +739,12 @@ func stringifyFlag(f Flag) string {
|
||||
}
|
||||
}
|
||||
|
||||
helpText := fv.FieldByName("DefaultText")
|
||||
if helpText.IsValid() && helpText.String() != "" {
|
||||
needsPlaceholder = val.Kind() != reflect.Bool
|
||||
defaultValueString = fmt.Sprintf(" (default: %q)", helpText.String())
|
||||
}
|
||||
|
||||
if defaultValueString == " (default: )" {
|
||||
defaultValueString = ""
|
||||
}
|
||||
|
Reference in New Issue
Block a user