Next: option-ref Reference, Previous: Command Line Format, Up: getopt-long
getopt-long
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.
version
if 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
-
char as 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-long
will 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-long
will 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.
--opt=
value syntax).