Skip to content

Commit

Permalink
Merge pull request #1080 from saschagrunert/refactor-flag-default
Browse files Browse the repository at this point in the history
Refactor '(default: …)' flag string into utility function
  • Loading branch information
rliebz committed Mar 5, 2020
2 parents 1b7e4e0 + 7742363 commit 3cc9946
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions flag.go
Expand Up @@ -244,6 +244,10 @@ func flagValue(f Flag) reflect.Value {
return fv
}

func formatDefault(format string) string {
return " (default: " + format + ")"
}

func stringifyFlag(f Flag) string {
fv := flagValue(f)

Expand All @@ -269,20 +273,20 @@ func stringifyFlag(f Flag) string {
val := fv.FieldByName("Value")
if val.IsValid() {
needsPlaceholder = val.Kind() != reflect.Bool
defaultValueString = fmt.Sprintf(" (default: %v)", val.Interface())
defaultValueString = fmt.Sprintf(formatDefault("%v"), val.Interface())

if val.Kind() == reflect.String && val.String() != "" {
defaultValueString = fmt.Sprintf(" (default: %q)", val.String())
defaultValueString = fmt.Sprintf(formatDefault("%q"), val.String())
}
}

helpText := fv.FieldByName("DefaultText")
if helpText.IsValid() && helpText.String() != "" {
needsPlaceholder = val.Kind() != reflect.Bool
defaultValueString = fmt.Sprintf(" (default: %s)", helpText.String())
defaultValueString = fmt.Sprintf(formatDefault("%s"), helpText.String())
}

if defaultValueString == " (default: )" {
if defaultValueString == formatDefault("") {
defaultValueString = ""
}

Expand Down Expand Up @@ -351,7 +355,7 @@ func stringifySliceFlag(usage string, names, defaultVals []string) string {

defaultVal := ""
if len(defaultVals) > 0 {
defaultVal = fmt.Sprintf(" (default: %s)", strings.Join(defaultVals, ", "))
defaultVal = fmt.Sprintf(formatDefault("%s"), strings.Join(defaultVals, ", "))
}

usageWithDefault := strings.TrimSpace(fmt.Sprintf("%s%s", usage, defaultVal))
Expand Down

0 comments on commit 3cc9946

Please sign in to comment.