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
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. If you want to use Clon
in one of your
applications, then you are considered a Clon
user, as opposed
to a Clon
end-user, and you should then read the corresponding
manual (see The Clon User Manual).
Clonification shows how to verify that an application is powered
by Clon
. The Command Line explains how to use the command-line of
a clonified application, and Output describes how to customize the
output of Clon
.
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.