Skip to content

Commit b363e55

Browse files
committed
feat: add '[args]' and 'Valid Args:' to --help
1 parent d4240b5 commit b363e55

File tree

4 files changed

+492
-133
lines changed

4 files changed

+492
-133
lines changed

args.go

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,13 @@ func validateArgs(cmd *Command, args []string) error {
1919
return nil
2020
}
2121

22-
// Legacy arg validation has the following behaviour:
23-
// - root commands with no subcommands can take arbitrary arguments
24-
// - root commands with subcommands will do subcommand validity checking
25-
// - subcommands will always accept arbitrary arguments
26-
func legacyArgs(cmd *Command, args []string) error {
27-
// no subcommand, always take args
28-
if !cmd.HasSubCommands() {
29-
return nil
30-
}
31-
32-
// root command with subcommands, do subcommand checking.
33-
if !cmd.HasParent() && len(args) > 0 {
34-
return fmt.Errorf("unknown command %q for %q%s", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0]))
35-
}
36-
return nil
37-
}
38-
3922
// NoArgs returns an error if any args are included.
4023
func NoArgs(cmd *Command, args []string) error {
4124
if len(args) > 0 {
42-
return fmt.Errorf("unknown command %q for %q", args[0], cmd.CommandPath())
25+
if cmd.HasAvailableSubCommands() {
26+
return fmt.Errorf("unknown command %q for %q", args[0], cmd.CommandPath())
27+
}
28+
return fmt.Errorf("\"%s\" rejected; %q does not accept args", args[0], cmd.CommandPath())
4329
}
4430
return nil
4531
}

0 commit comments

Comments
 (0)