Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (8) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

arg(2)

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 $flagx 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):

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)

Plan 9  —  December 02, 2007

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026