docs/02-usage.markdown @ 152830fa3f85
Start the docs
author |
Steve Losh <steve@stevelosh.com> |
date |
Thu, 22 Nov 2018 00:03:53 -0500 |
parents |
(none) |
children |
2adae5be4089 |
Usage
=====
Adopt is a simple library for parsing UNIX-style command line arguments in
Common Lisp. It was made because none of the other libraries did what I needed.
[TOC]
Package
-------
All core Adopt functions are in the `adopt` package. You can `:use` that if you
really want to, but it's probably clearer to use namespaced `adopt:…` symbols.
Example
-------
(define-interface *my-program* "[options] FILES"
(verbosity
"Output extra information."
:short #\v
:long "verbose"
:initial-value 0
:reduce (constantly 1))
(verbosity
"Shut up."
:short #\q
:long "quiet"
:reduce (constantly -1))
(ignore
"Ignore FILE. May be specified multiple times."
:long "ignore"
:parameter "FILE"
:reduce #'append1)
(name
"Your name. May be specified many times, last one wins."
:short #\n
:long "name"
:parameter "NAME"
:reduce #'latest)
(meows
"Meow."
:short #\m
:long "meow"
:initial-value 0
:reduce #'1+))
(pprint
(multiple-value-list
(parse-options *my-program*
'("-vqn" "steve"
"--meow"
"-m" "--meow" "foo"
"--name=sjl" "more"
"--" "--ignore" "bar"
))))