clap/examples/08_subcommands.md
Ed Page bfa02fd418 test: More thoroughly test examples
This ports our example testing over to [trycmd](https://docs.rs/) so
we can:
- More thoroughly test our examples
- Provide always-up-to-date example usage

The old way of testing automatically picked up examples.  This new way
requires we have a `.md` file that uses the example in some way.

Notes:
- Moved overall example description to the `.md` file
- I added cross-linking between related examples
- `14_groups` had a redundant paragraph (twice talked about "one and
  only one"
2021-11-23 13:13:41 -06:00

61 lines
1.4 KiB
Markdown

Subcommands function exactly like sub-Apps, because that's exactly what they are. Each
instance of a Subcommand can have its own version, author(s), Args, and even its own
subcommands.
Just like Apps, each subcommand will get its own "help" and "version" flags automatically
generated. Also, like Apps, you can override "-V" or "-h" safely and still get "--help" and
"--version" auto generated.
**NOTE:** If you specify a subcommand for your App, clap will also autogenerate a "help"
subcommand along with "-h" and "--help" (applies to sub-subcommands as well).
```bash
$ 08_subcommands help
MyApp 1.0
USAGE:
08_subcommands[EXE] [SUBCOMMAND]
OPTIONS:
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
add Adds files to myapp
help Print this message or the help of the given subcommand(s)
$ 08_subcommands help add
08_subcommands[EXE]-add 0.1
Kevin K.
Adds files to myapp
USAGE:
08_subcommands[EXE] add <input>
ARGS:
<input> the file to add
OPTIONS:
-h, --help Print help information
-V, --version Print version information
$ 08_subcommands add help
'myapp add' was used, input is: help
```
```bash
$ 08_subcommands --version
MyApp 1.0
```
Without any subcommand:
```bash
$ 08_subcommands
No subcommand was used
```
And with:
```bash
$ 08_subcommands add input.txt
'myapp add' was used, input is: input.txt
```