Issue
If not, is there a de facto standard? Basically I'm writing a command line help text like so:
usage: app_name [options] required_input required_input2
options:
-a, --argument Does something
-b required Does something with "required"
-c, --command required Something else
-d [optlistitem1 optlistitem 2 ... ] Something with list
I made that from basically just reading the help text of various tools, but is there a list of guidelines or something? For example, do I use square brackets or parentheses? How to use spacing? What if the argument is a list? Thanks!
Solution
Typically, your help output should include:
- Description of what the app does
- Usage syntax, which:
- Uses
[options]
to indicate where the options go arg_name
for a required, singular arg[arg_name]
for an optional, singular argarg_name...
for a required arg of which there can be many (this is rare)[arg_name...]
for an arg for which any number can be supplied- note that
arg_name
should be a descriptive, short name, in lower, snake case
- Uses
- A nicely-formatted list of options, each:
- having a short description
- showing the default value, if there is one
- showing the possible values, if that applies
- Note that if an option can accept a short form (e.g.
-l
) or a long form (e.g.--list
), include them together on the same line, as their descriptions will be the same
- Brief indicator of the location of config files or environment variables that might be the source of command line arguments, e.g.
GREP_OPTS
- If there is a man page, indicate as such, otherwise, a brief indicator of where more detailed help can be found
Note further that it's good form to accept both -h
and --help
to trigger this message and that you should show this message if the user messes up the command-line syntax, e.g. omits a required argument.
Answered By - davetron5000 Answer Checked By - Candace Johnson (WPSolving Volunteer)