Skip to content

Commit b579221

Browse files
authored
Merge pull request #48 from choria-io/340
(#340) Improve required flag missing error, now show all missing flags
2 parents 5c565c1 + be84374 commit b579221

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

Diff for: app.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -715,15 +715,23 @@ func (a *Application) validateRequired(context *ParseContext) error {
715715
}
716716

717717
// Check required flags and set defaults.
718+
var neededFlags []string
718719
for _, flag := range context.flags.long {
719720
if flagElements[flag.name] == nil {
720721
// Check required flags were provided.
721722
if flag.needsValue() {
722-
return fmt.Errorf("%w --%s not provided", ErrRequiredFlag, flag.name)
723+
neededFlags = append(neededFlags, fmt.Sprintf("--%s", flag.name))
723724
}
724725
}
725726
}
726727

728+
switch {
729+
case len(neededFlags) == 1:
730+
return fmt.Errorf("%w %s not provided", ErrRequiredFlag, neededFlags[0])
731+
case len(neededFlags) > 1:
732+
return fmt.Errorf("%ws %s not provided", ErrRequiredFlag, strings.Join(neededFlags, ", "))
733+
}
734+
727735
for _, arg := range context.arguments.args {
728736
if argElements[arg.name] == nil {
729737
if arg.needsValue() {

0 commit comments

Comments
 (0)