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 is the Clon
reference manual, and as such, it is not meant to be
read. It may help you find sleep in case of insomnia though. Clon
comes with two human-readable manuals:
Clon
end-user, that is, the user of an application powered by Clon
.
It describes how to use the command-line of clonified1 applications and how to
customize Clon
’s output. Everybody should read this manual first.
Clon
user,
that is, the developer of a Common-Lisp application who wants to use Clon
for
command-line option management. It describes how to clonify your application
and extend the library 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.