From 77423635009e8706999c64dea75a30cff63627f2 Mon Sep 17 00:00:00 2001 From: Sascha Grunert Date: Mon, 2 Mar 2020 13:05:43 +0100 Subject: [PATCH] =?UTF-8?q?Refactor=20'(default:=20=E2=80=A6)'=20flag=20st?= =?UTF-8?q?ring=20into=20utility=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The usage of the `(default: …)` strings are a bit error prone so we now refactor them into a dedicated helper function. Signed-off-by: Sascha Grunert --- flag.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/flag.go b/flag.go index 524de42f4b..712eca9e22 100644 --- a/flag.go +++ b/flag.go @@ -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) @@ -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 = "" } @@ -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))