docs(examples): Show pacman-style help

Looking at how `App::usage` member is used, and didn't realize we had
this special logic.
This commit is contained in:
Ed Page 2022-02-14 11:51:01 -06:00
parent a5a56d5865
commit adb2b03890

View file

@ -34,5 +34,54 @@ Searching for name...
```
*(users can "stack" short subcommands with short flags or with other short flag subcommands)*
In the help, this looks like:
```console
$ pacman -h
pacman 5.2.1
Pacman Development Team
package manager utility
USAGE:
pacman[EXE] <SUBCOMMAND>
OPTIONS:
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
-Q--queryquery Query the package database.
-S--syncsync Synchronize packages.
help Print this message or the help of the given subcommand(s)
$ pacman -S -h
pacman[EXE]-sync
Synchronize packages.
USAGE:
pacman[EXE] {sync, --sync, -S} [OPTIONS] [--] [package]...
ARGS:
<package>... packages
OPTIONS:
-h, --help Print help information
-i, --info view package information
-s, --search <search>... search remote repositories for matching strings
```
And errors:
```console
$ pacman -S -s foo -i bar
? failed
error: The argument '--search <search>...' cannot be used with '--info'
USAGE:
pacman[EXE] {sync, --sync, -S} --search <search>... <package>...
For more information try --help
```
**NOTE:** Keep in mind that subcommands, flags, and long flags are *case sensitive*: `-Q` and `-q` are different flags/subcommands. For example, you can have both `-Q` subcommand and `-q` flag, and they will be properly disambiguated.
Let's make a quick program to illustrate.