| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
7.4.4 Reference Documentation for getopt-long
- Scheme Procedure: getopt-long args grammar
Parse the command line given in args (which must be a list of strings) according to the option specification grammar.
The grammar argument is expected to be a list of this form:
((option (property value) …) …)where each option is a symbol denoting the long option, but without the two leading dashes (e.g.
versionif the option is called--version).For each option, there may be list of arbitrarily many property/value pairs. The order of the pairs is not important, but every property may only appear once in the property list. The following table lists the possible properties:
-
(single-char char) Accept
-charas a single-character equivalent to--option. This is how to specify traditional Unix-style flags.-
(required? bool) If bool is true, the option is required.
getopt-longwill raise an error if it is not found in args.-
(value bool) If bool is
#t, the option accepts a value; if it is#f, it does not; and if it is the symboloptional, the option may appear in args with or without a value.-
(predicate func) If the option accepts a value (i.e. you specified
(value #t)for this option), thengetopt-longwill apply func to the value, and throw an exception if it returns#f. func should be a procedure which accepts a string and returns a boolean value; you may need to use quasiquotes to get it into grammar.
-
getopt-long’s args parameter is expected to be a list of
strings like the one returned by command-line, with the first
element being the name of the command. Therefore getopt-long
ignores the first element in args and starts argument
interpretation with the second element.
getopt-long signals an error if any of the following conditions
hold.
- The option grammar has an invalid syntax.
- One of the options in the argument list was not specified by the grammar.
- A required option is omitted.
- An option which requires an argument did not get one.
-
An option that doesn’t accept an argument does get one (this can only
happen using the long option
--opt=valuesyntax). - An option predicate fails.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
