Skip to content

Commit 9e56157

Browse files
authored
Merge pull request #53 from choria-io/52
(#52) improve handling of duplicate command errors
2 parents d612d92 + 687c692 commit 9e56157

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

Diff for: app.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -906,7 +906,7 @@ func (a *Application) MustParseWithUsage(args []string) (command string) {
906906
fmt.Fprintf(a.errorWriter, "error: %v, use --help for full help including flags and arguments\n\n", err)
907907
ut = a.errorUsageTemplate
908908

909-
case errorIs(err, ErrRequiredArgument, ErrRequiredFlag, ErrUnknownLongFlag, ErrUnknownShortFlag, ErrExpectedFlagArgument, ErrFlagCannotRepeat, ErrUnexpectedArgument):
909+
case errorIs(err, ErrRequiredArgument, ErrRequiredFlag, ErrUnknownLongFlag, ErrUnknownShortFlag, ErrExpectedFlagArgument, ErrFlagCannotRepeat, ErrUnexpectedArgument, ErrDuplicateCommand):
910910
fmt.Fprintf(a.errorWriter, "error: %v\n\n", err)
911911

912912
default:

Diff for: cmd.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ func (c *cmdGroup) init() error {
196196
defaults = append(defaults, cmd.name)
197197
}
198198
if seen[cmd.name] {
199-
return fmt.Errorf("duplicate command %q", cmd.name)
199+
return fmt.Errorf("%w %q", ErrDuplicateCommand, cmd.name)
200200
}
201201
seen[cmd.name] = true
202202
for _, alias := range cmd.aliases {

Diff for: errors.go

+3
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,7 @@ var (
3535

3636
// ErrUnexpectedArgument indicates an unexpected argument was encountered
3737
ErrUnexpectedArgument = errors.New("unexpected argument")
38+
39+
// ErrDuplicateCommand indicates that a command was defined multiple times
40+
ErrDuplicateCommand = errors.New("duplicate command")
3841
)

0 commit comments

Comments
 (0)