From 64d23c54e3e2a385ce12757939bed9c632d1693c Mon Sep 17 00:00:00 2001 From: Arun Gajaraj <60968728+arun-gajaraj@users.noreply.github.com> Date: Sun, 1 Oct 2023 04:29:49 +0530 Subject: [PATCH] Improved error message for missing required flags: now list all missing required flags for better user guidance. (#340) Issue: https://github.com/alecthomas/kingpin/issues/215 --- app.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app.go b/app.go index 43d816b..4f1f31b 100644 --- a/app.go +++ b/app.go @@ -464,14 +464,18 @@ func (a *Application) validateRequired(context *ParseContext) error { } // Check required flags and set defaults. + var missingFlags []string for _, flag := range context.flags.long { if flagElements[flag.name] == nil { // Check required flags were provided. if flag.needsValue() { - return fmt.Errorf("required flag --%s not provided", flag.name) + missingFlags = append(missingFlags, fmt.Sprintf("'--%s'", flag.name)) } } } + if len(missingFlags) != 0 { + return fmt.Errorf("required flag(s) %s not provided", strings.Join(missingFlags, ", ")) + } for _, arg := range context.arguments.args { if argElements[arg.name] == nil {