cli

The cli library is a fully-featured toolkit for working with and building CLI programs.

CLI/TERMINFO
CLI/REPL
CLI/TUI
CLI/CLAP/UTIL
CLI/TOOLS/BUILD
CLI/TOOLS/GO
CLI/TOOLS/NET
CLI/CLAP/PROTO
CLI/TOOLS/MAIL
CLI/TOOLS/PACMAN
CLI/CLAP/OBJ
CLI/ENV
CLI/CLAP/MACS
CLI/TOOLS/MEDIA
CLI/TOOLS/SBCL
CLI/LINEDIT
CLI/TOOLS
CLI/TOOLS/RUST
CLI/TOOLS/FS
CLI-USER
CLI/PROGRESS
CLI/CLAP
CLI/TOOLS/PROTO
CLI/TOOLS/TMUX
CLI/TESTS
CLI/ANSI
CLI/SPARK
CLI/MULTI
CLI/TOOLS/TERM
CLI/CLAP/AST
CLI/TOOLS/PLOT
CLI/CLAP/VARS
CLI/ED
CLI/TOOLS/VIRT
CLI/TOOLS/SYS
CLI/INT
CLI/TOOLS/CC
CLI
CLI/SHELL
std
log
dat
obj
gui
packy
syn
box
pod
vc
skel
rdb
net
cli/tests
core
bin/skel
bin/vc
bin/rdb
bin/pod
bin/mpk
bin/homer
bin/organ
pkg.lisp
ansi.lisp
env.lisp
progress.lisp
spark.lisp
terminfo.lisp
linedit.lisp
repl.lisp
shell.lisp
ed.lisp
tools/pkg.lisp
tools/term.lisp
tools/tmux.lisp
tools/pacman.lisp
tools/cc.lisp
tools/build.lisp
tools/virt.lisp
tools/sys.lisp
tools/rust.lisp
tools/sbcl.lisp
tools/net.lisp
tools/media.lisp
tools/mail.lisp
tools/fs.lisp
tools/plot.lisp
clap/pkg.lisp
clap/ast.lisp
clap/vars.lisp
clap/util.lisp
clap/macs.lisp
clap/proto.lisp
clap/opt.lisp
clap/cmd.lisp
clap/cli.lisp
multi.lisp
tui.lisp
cli.lisp
CLAP-OPTS
CLAP-BASIC
CLAP-MAIN
CLI-AST
MIXED-ARGS
ANSI
SHELL-READER
SBCL-TOOLS
ENV
SPARK
PROGRESS
HIDE-CURSOR
ENSURE-SUDO
TILDE-GLITCH
KEY-F5
META-ON
DISPLAY-CLOCK
STATUS-LINE-ESC-OK
USER5
EXIT-SHADOW-MODE
BACKSPACES-WITH-BS
.SGR
KEY-F19
PAD-CHAR
KEY-F49
CEOL-STANDOUT-GLITCH
MOVE-STANDOUT-MODE
KEY-COPY
REMOVE-CLOCK
EVAL-EMACS
KEY-EIC
ACS-LRCORNER
ENTER-SUBSCRIPT-MODE
KEY-CATAB
VSPARK
CURSOR-VISIBLE
ACS-RTEE
ENTER-DRAFT-QUALITY
CLEAR
KEY-F18
TPARM
ACS-LLCORNER
OTHER-NON-FUNCTION-KEYS
KEY-SPRINT
CLR-BOL
KEY-PREVIOUS
KEY-F29
RESET-3STRING
EDIFF
BUFFER-CAPACITY
SET-TERMINAL
SET-TOP-MARGIN-PARM
.DECRST
HAS-PRINT-WHEEL
ENTER-DOUBLEWIDE-MODE
USER6
ENTER-REVERSE-MODE
CHANGE-RES-HORZ
KEY-SEXIT
ERASE-BELOW
KEY-SLEFT
EXIT-SUBSCRIPT-MODE
RESET-2STRING
ACS-URCORNER
MAX-PAIRS
KEY-END
HAS-META-KEY
CLR-EOL
SCANCODE-ESCAPE
SET-COLOR-BAND
INIT-TABS
ENTER-UNDERLINE-MODE
PARM-DOWN-CURSOR
KEY-EOL
LINES-OF-MEMORY
KEY-F54
EMACS-FIND-FILE
END-BIT-IMAGE-REGION
KEY-SIC
KEY-CREATE
ALT-SCANCODE-ESC
GNU-HAS-META-KEY
LOAD-ENV
ENTER-DIM-MODE
ERASE-LINE
USE-ALTERNATE-SCREEN-BUFFER
PARM-DCH
EXIT-ITALICS-MODE
EXIT-DOUBLEWIDE-MODE
KEY-F57
ACS-BTEE
DOT-VERT-SPACING
EXIT-SCANCODE-MODE
HUE-LIGHTNESS-SATURATION
USER4
KEY-UNDO
.CPL
STOP-CHAR-SET-DEF
PARM-ICH
TERMCAP-RESET
BACK-COLOR-ERASE
NUMBER-OF-FUNCTION-KEYS
%COLUMNS
KEY-LL
INSTALL-REPL
SET-A-FOREGROUND
RUN-EMACSCLIENT
KEY-REFRESH
DOWN-HALF-LINE
CPI-CHANGES-RES
KEY-F52
ENTER-MICRO-MODE
.EL
SET-BACKGROUND
PROGRAM-LIST
LD-LIBRARY-PATH-LIST
DECODE-PADDING
PRINT-RATE
KEY-F44
ENTER-LOW-HL-MODE
USER8
ERASE-LEFT
MICRO-COLUMN-ADDRESS
KEY-F15
PKEY-LOCAL
META-OFF
SET2-DES-SEQ
.CUP
REPEAT-CHAR
SET-BOTTOM-MARGIN-PARM
*PROGRESS-BAR*
INIT-1STRING
KEY-F55
SCROLL-FORWARD
KEY-MARK
AUTO-RIGHT-MARGIN
FIND-EXE
KEY-OPTIONS
CHAR-PADDING
KEY-F22
SAVE-CURSOR
KEY-A3
ENTER-DELETE-MODE
OUTPUT-RES-HORZ-INCH
%LINES
MICRO-UP
REQ-MOUSE-POS
.SCOSC
RESTORE-CURSOR
COMPLETING-READ
EXIT-DELETE-MODE
BACKSPACE-IF-NOT-BS
SUPERSCRIPT-CHARACTERS
PKEY-XMIT
KEY-STAB
KEYPAD-XMIT
KEY-F34
KEY-HOME
NEEDS-XON-XOFF
PARM-UP-CURSOR
SET-FOREGROUND
MEMORY-LOCK
DEFINE-BIT-IMAGE-REGION
KEY-RESUME
INSERT-LINE
KEY-F6
SELECT-CHAR-SET
ENA-ACS
PKEY-KEY
COLUMN-ADDRESS
KEY-MOVE
KEY-F53
*HIGHLIGHT-COLOR*
KEY-SFIND
NON-DEST-SCROLL-REGION
CLEAR-MARGINS
ENTER-AM-MODE
ENTER-ALT-CHARSET-MODE
SET-LR-MARGIN
DEFAULT-TOPLEVEL-INIT
MEMORY-BELOW
MAGIC-COOKIE-GLITCH
MEMORY-ABOVE
SET-WINDOW
KEY-F60
.CUD
EMACS-CONFIG
PRTR-NON
KEY-F24
ACS-TTEE
CURSOR-TO-LL
IELM
ENTER-BLINK-MODE
KEY-PRINT
ERASE-CHARS
KEY-F46
UNCERTAIN-SIZE-PROGRESS-BAR
DIS-STATUS-LINE
DEFINE-CHAR
*SUDO-OUTPUT*
KEY-F35
NO-ESC-CTLC
SET-CLOCK
CURSOR-INVISIBLE
KEY-DL
.RIS
HAS-STATUS-LINE
CURSOR-UP
KEY-F43
MEMORY-UNLOCK
WITH-SUDO
COLOR-NAMES
DOT-HORZ-SPACING
KEY-BACKSPACE
ENTER-RIGHT-HL-MODE
CAPABILITY
OUTPUT-RES-CHAR
ACS-HLINE
PARM-LEFT-CURSOR
ORDER-OF-PINS
KEY-SELECT
EXIT-MICRO-MODE
CURSOR-HOME
MAX-COLORS
KEY-PPAGE
SCROLL-REVERSE
FIXED-PAUSE
KEY-SOPTIONS
AUTO-LEFT-MARGIN
KEY-REFERENCE
EXEC-PATH-LIST
CURSOR-RIGHT
INIT-PROG
EXIT-UPWARD-MODE
TAB
ENTER-HORIZONTAL-HL-MODE
CALL-WITH-SUDO
YES-OR-NO
KEY-F37
HORIZONTAL-TAB-DELAY
INIT-3STRING
KEY-REDO
KEY-UP
GENERIC-TYPE
CHAR-SET-NAMES
ERASE-ABOVE
KEY-SR
RESET-FILE
FINISH-PROGRESS-DISPLAY
COL-ADDR-GLITCH
SET-LEFT-MARGIN-PARM
RESET-1STRING
ACS-CHARS
KEY-F8
ENTER-STANDOUT-MODE
WITH-EMACS
LABEL-FORMAT
LABEL-HEIGHT
KEY-SRIGHT
CURSOR-NORMAL
LAB-F7
KEY-F3
MICRO-COL-SIZE
HANGUP
LAB-F1
KEY-F20
SET-RIGHT-MARGIN-PARM
...

1. Packages

1.1. clap

ARGC
ARG0
CLI-PACKAGE-TABLE
PARSE-FILE-OP
CLAP-INVALID-ARGUMENT
CLI-OPT-NAME
ACTIVE-CMDS
PUSH-CMD
OPTS
PARSE-CLI-LAMBDA-LIST
CLI-CD
DEFOPT
CLAP-WARNING
CLI-OPT-VAL
ARGS
GETOPT
PARSE-ARGS
DEBUG-OPTS
SETOPT
CMDS
OPTS
PRINT-VERSION
ARG
SET-PACKAGE-CLI
PROC-ARGS
CLI-NAME
MAKE-CLI-NODE
KEEP-AST-OPT
PACKAGE-CLI
PRINT-USAGE
SHORT-OPT-P
DEFAULT-CMD-THUNK
DEFAULT-OPT-THUNK
ACTIVATE-OPT
CLI-OPT-KINDS
NO-EXIT
MAKE-CLI-AST
FIND-SHORT-OPTS
DO-CMDS
DEFMAIN
ADD-PACKAGE-OPT
CLI-LOCK-P
DO-OPTS
GROUP-OPT-P
CLAP-SIMPLE-WARNING
PARSE-LIST-OP
VERSION-OPT
PARSE-FORM-OPT
PRINT-HELP
PARSE-KEY-OP
CALL-OPT
OPTC
FIND-CMD
CLAP-ERROR
DEFCMD
DEFAULT-CLI-CLASS
CLAP-UNKNOWN-ARGUMENT
MAKE-CMDS
WITH-CLI-HANDLERS
CLI-OPT
PARSE-STRING-OPT
CLI-GROUP-SEPARATOR
ADD-PACKAGE-OPTS
HELP-OPT
LONG-OPT-P
ADD-PACKAGE-CMDS
FIND-OPTS
CLI-ARGS
OPT-STRING-PREFIX-EQ
MAKE-OPT-PARSER
PUSH-OPT
CLAP-MISSING-ARGUMENT
LOAD-PACKAGE-CLI
LONG-OPT-HAS-EQ-P
NO-DEBUG
CLI-OPT-LOCK
ACTIVE-OPTS
SHORT-OPT-HAS-EQ-P
CLI-NODE-KIND
FIND-OPT
CLAP-SIMPLE-ERROR
ADD-PACKAGE-CMD
CLI-NODE-FORM
DO-CMD
CLI-OPT-KIND-P
DEFINE-CLI
WITH-CLI-ARGS
%COMPOSE-KEYWORD-OPT
MAKE-CLI
CLI
MAKE-OPTS
PASRE-NUM-OP
PARSE-DIR-OP
DO-OPT
CLI-CMD-ARGS
ARGS
CLI-AST
MAKE-SHORTY
ACTIVATE-CMD
PACKAGE-CMDS
PARSE-BOOL-OPT
CLI-NODE
WITH-CLI
OPT-KEYWORD-P
PARSE-SYM-OP
DEFAULT-CLI-DEF
PACKAGE-OPTS
LEVEL-OPT
CLI
CLI-CMD
ARGP

clap is a name borrowed from the clap.rs Command Line Argument Parserfor Rust. What can I say, it's a good acronym.

Besides the system tests, you can find this package used in our lisp binaries (bin).

clap provides an object protocol and classes which parse input into a simple AST and execute the appropriate option and command handlers.

Several macros form the public API used to build a CLI including defcommand, defopt, define-cli, and defmain.

1.2. shell

SHELL-INPUT
SHELL