Next: option-ref Reference, Previous: Command Line Format, Up: getopt-long
getopt-longParse 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-charchar)- 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-longwill raise an error if it is not found in args.(valuebool)- 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.(predicatefunc)- 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.
--opt=value syntax).