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.

          Additionally, getflags collects arguments according to the
          environment variable $ptflagfmt.  This variable has the same
          format as $flagfmt.  Getflags adds to the output script a
          line setting $ptflag to the list collected arguments.

          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

     GETFLAGS(8)                                           GETFLAGS(8)

     SEE ALSO
          arg(2)