clap/examples/06_positional_args.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

1.1 KiB

Positional arguments are those values after the program name which are not preceded by any identifier (such as "myapp some_file"). Positionals support many of the same options as flags, as well as a few additional ones.

Let's look at their help:

$ 06_positional_args --help
MyApp 

USAGE:
    06_positional_args[EXE] <input> [config]

ARGS:
    <input>     the input file to use
    <config>    the config file to use

OPTIONS:
    -h, --help    Print help information

First, we see that the first argument is required:

$ 06_positional_args
? failed
error: The following required arguments were not provided:
    <input>
    <config>

USAGE:
    06_positional_args[EXE] <input> [config]

For more information try --help

That first argument causes the second to be required:

$ 06_positional_args input.txt
? failed
error: The following required arguments were not provided:
    <config>

USAGE:
    06_positional_args[EXE] <input> <config> [config]

For more information try --help

Everything works now that we specify both:

$ 06_positional_args input.txt config.toml
An input file was specified
Doing work with input.txt and config.toml