Clon
is a library for managing command-line options in standalone Common Lisp
applications. It provides a unified option syntax with both short and
long names, automatic completion of partial names and automatic
retrieval/conversion of option arguments from the command-line, associated
environment variables, fallback or default values. Clon
comes with a
set of extensible option types (switches, paths, strings etc.).
Clon
also provides automatic generation and formatting of help
strings, with support for highlighting on tty
’s through ISO/IEC 6429
SGR. This formatting is customizable through themes.
Depending on the target audience, Clon
stands for either “The
Command-Line Options Nuker” or “The Common Lisp Options Nuker”. Clon
also
has a recursive acronym: “Clon
Likes Options Nuking”, and a reverse
one: “Never Omit to Link with Clon
”. Other possible expansions of
the acronym are still being investigated.
This manual is for the Clon
user, that is, the developer of a
Common Lisp application who wants to use Clon
for command-line option
management1.
As opposed to the user of the library, the user of an
application powered by Clon
is called an end-user.
Clon
provides both a user manual (this one) and an end-user manual
(see The Clon End-User Manual). Everybody should read the end-user manual first.
Quick Start provides a very short example in order to give an
overview of what’s coming next. Using Clon explains in detail how
to clonify your application, and Extending Clon describe how to
extend Clon
with your own option types.
An application using Clon
for its command-line
option management is said to be clonified. It is also possible to
say clonfiscated. However, we advise against using
clonistified. The term clonificated is also considered bad
style, and the use of clonificationated is strictly prohibited.