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"
                         ))))