From fffdd82c00a338f427815ef8844cf5135e49e1f4 Mon Sep 17 00:00:00 2001 From: Aaron Berns Date: Tue, 20 Aug 2019 11:09:53 -0400 Subject: [PATCH] add ability to combine multiple error strings to Error() function --- context.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/context.go b/context.go index 4273389..11bb4f1 100644 --- a/context.go +++ b/context.go @@ -308,12 +308,18 @@ func (e *errRequiredFlags) Error() string { } } + var allErrors []string numberOfMissingFlags := len(missingFlagNames) if numberOfMissingFlags == 1 { - return fmt.Sprintf("Required flag %q not set", missingFlagNames[0]) + allErrors = append(allErrors, fmt.Sprintf("Required flag %q not set", missingFlagNames[0])) + } else { + joinedMissingFlags := strings.Join(missingFlagNames, ", ") + allErrors = append(allErrors, fmt.Sprintf("Required flags %q not set", joinedMissingFlags)) } - joinedMissingFlags := strings.Join(missingFlagNames, ", ") - return fmt.Sprintf("Required flags %q not set", joinedMissingFlags) + + // handle user defined errors and append + + return strings.Join(allErrors, "\n") } func (e *errRequiredFlags) getMissingFlags() map[string]bool {