Skip to content

Commit

Permalink
fix(args): Correct legacyArgs logical errors
Browse files Browse the repository at this point in the history
Close spf13#1156
Signed-off-by: Dong Gang <dong.gang@daocloud.io>
  • Loading branch information
Dong Gang committed Jul 11, 2020
1 parent 675ae5f commit 01ce53c
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions args.go
Expand Up @@ -9,16 +9,15 @@ type PositionalArgs func(cmd *Command, args []string) error

// Legacy arg validation has the following behaviour:
// - root commands with no subcommands can take arbitrary arguments
// - root commands with subcommands will do subcommand validity checking
// - subcommands will always accept arbitrary arguments
// - commands with subcommands cannot take any arguments
func legacyArgs(cmd *Command, args []string) error {
// no subcommand, always take args
if !cmd.HasSubCommands() {
return nil
}

// root command with subcommands, do subcommand checking.
if !cmd.HasParent() && len(args) > 0 {
// root command with subcommands, the args should be empty.
if cmd.HasSubCommands() && len(args) > 0 {
return fmt.Errorf("unknown command %q for %q%s", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0]))
}
return nil
Expand Down

0 comments on commit 01ce53c

Please sign in to comment.