man(1) Manual page archive


     GETFLAGS(8)                                           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 vari-
          able 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 con-
          taining 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)