From adb2b038907114fb860e42f56d7c73ab85e293f1 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 14 Feb 2022 11:51:01 -0600 Subject: [PATCH] docs(examples): Show pacman-style help Looking at how `App::usage` member is used, and didn't realize we had this special logic. --- examples/pacman.md | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/examples/pacman.md b/examples/pacman.md index daa26dc8..dff5149a 100644 --- a/examples/pacman.md +++ b/examples/pacman.md @@ -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] + +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: + ... packages + +OPTIONS: + -h, --help Print help information + -i, --info view package information + -s, --search ... search remote repositories for matching strings + +``` + +And errors: +```console +$ pacman -S -s foo -i bar +? failed +error: The argument '--search ...' cannot be used with '--info' + +USAGE: + pacman[EXE] {sync, --sync, -S} --search ... ... + +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.