clap/examples/tutorial_builder/03_04_subcommands.md
Ed Page 42c943844c fix(help): Use Command in place of Subcommand
In switching to title case for help headings (#4123), it caused me to
look at "subcommand" in a fresh light.  I can't quite put my finger on
it but "Subcommand" looks a bit sloppy.  I also have recently been
surveying other CLIs and they just use "command" as well.

All of them are commands anyways, just some are children of others
(subcommands) while others are not (root or top-level commands, or just
command).  Context is good enough for clarifying subcommands from root
commands.

This is part of #4132
2022-08-31 08:53:10 -05:00

1.3 KiB

$ 03_04_subcommands help
clap [..]
A simple to use, efficient, and full-featured Command Line Argument Parser

Usage:
    03_04_subcommands[EXE] <COMMAND>

Commands:
    add     Adds files to myapp
    help    Print this message or the help of the given subcommand(s)

Options:
    -h, --help       Print help information
    -V, --version    Print version information

$ 03_04_subcommands help add
clap-add [..]
Adds files to myapp

Usage:
    03_04_subcommands[EXE] add [NAME]

Arguments:
    [NAME]    

Options:
    -h, --help       Print help information
    -V, --version    Print version information

$ 03_04_subcommands add bob
'myapp add' was used, name is: Some("bob")

Because we set [Command::arg_required_else_help][crate::Command::arg_required_else_help]:

$ 03_04_subcommands
? failed
clap [..]
A simple to use, efficient, and full-featured Command Line Argument Parser

Usage:
    03_04_subcommands[EXE] <COMMAND>

Commands:
    add     Adds files to myapp
    help    Print this message or the help of the given subcommand(s)

Options:
    -h, --help       Print help information
    -V, --version    Print version information

Because we set [Command::propagate_version][crate::Command::propagate_version]:

$ 03_04_subcommands --version
clap [..]

$ 03_04_subcommands add --version
clap-add [..]