GETFLAGS(1plan9)                                              GETFLAGS(1plan9)

       getflags, usage - command-line parsing for shell scripts

       getflags $*

       usage [ progname ]

       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)).  If run under sh(1), which does not set $0,
       the program name must be given explicitly on the command line.

       Parse the arguments for leak(1):

              flagfmt='b,s,f binary,r res,x width'
              args='name | pid list'
              if(! ifs=() eval `{getflags $*} || ~ $#* 0){
                   exit usage