(guile.info.gz) getopt-long Example
Info Catalog
(guile.info.gz) getopt-long
(guile.info.gz) Option Specification
10.2.1 A Short getopt-long Example
----------------------------------
This subsection illustrates how `getopt-long' is used by presenting and
dissecting a simple example. The first thing that we need is an
"option specification" that tells `getopt-long' how to parse the
command line. This specification is an association list with the long
option name as the key. Here is how such a specification might look:
(define option-spec
'((version (single-char #\v) (value #f))
(help (single-char #\h) (value #f))))
This alist tells `getopt-long' that it should accept two long
options, called _version_ and _help_, and that these options can also
be selected by the single-letter abbreviations _v_ and _h_,
respectively. The `(value #f)' clauses indicate that neither of the
options accepts a value.
With this specification we can use `getopt-long' to parse a given
command line:
(define options (getopt-long (command-line) option-spec))
After this call, `options' contains the parsed command line and is
ready to be examined by `option-ref'. `option-ref' is called like this:
(option-ref options 'help #f)
It expects the parsed command line, a symbol indicating the option to
examine, and a default value. The default value is returned if the
option was not present in the command line, or if the option was present
but without a value; otherwise the value from the command line is
returned. Usually `option-ref' is called once for each possible option
that a script supports.
The following example shows a main program which puts all this
together to parse its command line and figure out what the user wanted.
(define (main args)
(let* ((option-spec '((version (single-char #\v) (value #f))
(help (single-char #\h) (value #f))))
(options (getopt-long args option-spec))
(help-wanted (option-ref options 'help #f))
(version-wanted (option-ref options 'version #f)))
(if (or version-wanted help-wanted)
(begin
(if version-wanted
(display "getopt-long-example version 0.3\n"))
(if help-wanted
(display "\
getopt-long-example [options]
-v, --version Display version
-h, --help Display this help
")))
(begin
(display "Hello, World!") (newline)))))
Info Catalog
(guile.info.gz) getopt-long
(guile.info.gz) Option Specification
automatically generated byinfo2html