GETFLAGS 8
NAME
getflags, usage - command-line parsing for shell scripts
SYNOPSIS
aux/getflags $* 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 SEE ALSO
arg (2)