| getflags.1 - 9base - revived minimalist port of Plan 9 userland to Unix | |
| git clone git://git.suckless.org/9base | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| getflags.1 (1817B) | |
| --- | |
| 1 .TH GETFLAGS 8 | |
| 2 .SH NAME | |
| 3 getflags, usage \- command-line parsing for shell scripts | |
| 4 .SH SYNOPSIS | |
| 5 .B getflags $* | |
| 6 .PP | |
| 7 .B usage [ progname ] | |
| 8 .SH DESCRIPTION | |
| 9 .I Getflags | |
| 10 parses the options in its command-line arguments | |
| 11 according to the environment variable | |
| 12 .BR $flagfmt . | |
| 13 This variable should be a list of comma-separated options. | |
| 14 Each option can be a single letter, indicating that it does | |
| 15 not take arguments, or a letter followed by the space-separated | |
| 16 names of its arguments. | |
| 17 .I Getflags | |
| 18 prints an | |
| 19 .IR rc (1) | |
| 20 script on standard output which initializes the | |
| 21 environment variable | |
| 22 .BI $flag x | |
| 23 for every option mentioned in | |
| 24 .BR $flagfmt . | |
| 25 If the option is not present on the command-line, the script | |
| 26 sets that option's flag variable to an empty list. | |
| 27 Otherwise, the script sets that option's flag variable with | |
| 28 a list containing the option's arguments or, | |
| 29 if the option takes no arguments, | |
| 30 with the string | |
| 31 .BR 1 . | |
| 32 The script also sets the variable | |
| 33 .B $* | |
| 34 to the list of arguments following the options. | |
| 35 The final line in the script sets the | |
| 36 .B $status | |
| 37 variable, to the empty string on success | |
| 38 and to the string | |
| 39 .B usage | |
| 40 when there is an error parsing the command line. | |
| 41 .PP | |
| 42 .I Usage | |
| 43 prints a usage message to standard error. | |
| 44 It creates the message using | |
| 45 .BR $flagfmt , | |
| 46 as described above, | |
| 47 .BR $args , | |
| 48 which should contain the string to be printed explaining | |
| 49 non-option arguments, | |
| 50 and | |
| 51 .BR $0 , | |
| 52 the program name | |
| 53 (see | |
| 54 .IR rc (1)). | |
| 55 If run under | |
| 56 .IR sh (1), | |
| 57 which does not set | |
| 58 .BR $0 , | |
| 59 the program name must be given explicitly on the command line. | |
| 60 .SH EXAMPLE | |
| 61 Parse the arguments for | |
| 62 .IR leak (1): | |
| 63 .IP | |
| 64 .EX | |
| 65 flagfmt='b,s,f binary,r res,x width' | |
| 66 args='name | pid list' | |
| 67 if(! ifs=() eval `{getflags $*} || ~ $#* 0){ | |
| 68 usage | |
| 69 exit usage | |
| 70 } | |
| 71 .EE | |
| 72 .SH SOURCE | |
| 73 .B \*9/src/cmd/getflags.c | |
| 74 .br | |
| 75 .B \*9/src/cmd/usage.c | |
| 76 .SH SEE ALSO | |
| 77 .IR arg (3) |