Skip to content

Commit

Permalink
fix: display an error when help is called on a not existing command.
Browse files Browse the repository at this point in the history
  • Loading branch information
ldez committed Jun 19, 2019
1 parent 68ecf78 commit ea16f2b
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
10 changes: 5 additions & 5 deletions pkg/cli/commands.go
Expand Up @@ -86,6 +86,11 @@ func execute(cmd *Command, args []string, root bool) error {
}

func run(cmd *Command, args []string) error {
if len(args) > 0 && !isFlag(args[0]) && !cmd.AllowArg {
_ = PrintHelp(os.Stdout, cmd)
return fmt.Errorf("command not found: %s", args[0])
}

if isHelp(args) {
return PrintHelp(os.Stdout, cmd)
}
Expand All @@ -95,11 +100,6 @@ func run(cmd *Command, args []string) error {
return fmt.Errorf("command %s is not runnable", cmd.Name)
}

if len(args) > 0 && !isFlag(args[0]) && !cmd.AllowArg {
_ = PrintHelp(os.Stdout, cmd)
return fmt.Errorf("command not found: %v", args)
}

if cmd.Configuration == nil {
return cmd.Run(args)
}
Expand Down
16 changes: 16 additions & 0 deletions pkg/cli/commands_test.go
Expand Up @@ -103,6 +103,22 @@ func Test_execute(t *testing.T) {
},
expected: expected{error: true},
},
{
desc: "root command, call help, with argument, command not found",
args: []string{"", "echo", "--help"},
command: func() *Command {
return &Command{
Name: "root",
Description: "This is a test",
Configuration: nil,
Run: func(_ []string) error {
called = "root"
return nil
},
}
},
expected: expected{error: true},
},
{
desc: "one sub command",
args: []string{"", "sub1"},
Expand Down

0 comments on commit ea16f2b

Please sign in to comment.