xref: /plan9/sys/man/8/getflags (revision 19a27a122613a7254588adc7b0c4c1ac25d17e37)
GETFLAGS 8
NAME
getflags, usage - command-line parsing for shell scripts
SYNOPSIS
aux/getflags $*

aux/usage

DESCRIPTION
Getflags parses the options in its command-line arguments according to the environment variable $flagfmt . This variable should be a list of comma-separated options. Each option can be a single letter, indicating that it does not take arguments, or a letter followed by the space-separated names of its arguments. Getflags prints an rc (1) script on standard output which initializes the environment variable $flag x for every option mentioned in $flagfmt . If the option is not present on the command-line, the script sets that option's flag variable to an empty list. Otherwise, the script sets that option's flag variable with a list containing the option's arguments or, if the option takes no arguments, with the string 1 . The script also sets the variable $* to the list of arguments following the options. The final line in the script sets the $status variable, to the empty string on success and to the string usage when there is an error parsing the command line.

Usage prints a usage message to standard error. It creates the message using $flagfmt , as described above, $args , which should contain the string to be printed explaining non-option arguments, and $0 , the program name (see rc (1)).

EXAMPLE
Parse the arguments for leak (1):
.EX flagfmt='b,s,f binary,r res,x width' args='name | pid list' if(! ifs=() eval `{aux/getflags $*} || ~ $#* 0){ aux/usage exit usage }
SOURCE
/sys/src/cmd/aux/getflags.c

/sys/src/cmd/aux/usage.c

SEE ALSO
arg (2)