So you want to write a utility script, and you want to write it in Common Lisp. I created a template Common Lisp script called start.lisp
. It’s meant to be renamed and hacked up but it provides a starting point for a new Common Lisp script, with some utility libraries included.
Here’s a “one-liner” that you can paste into a text editor, verify visually, then copy-n-paste from the editor into a terminal. This will get you up and running on major distros:
sudo apt install sbcl || \
sudo dnf install sbcl || \
sudo yum install sbcl && \
git clone --recursive https://git.sr.ht/~fitzsim/cl-starter-script && \
./cl-starter-script/start.lisp --help
It uses some shell tricks I found on the EmacsWiki, and a UIOP1 feature ((uiop:argv0)
with __CL_ARGV0
) I discovered via the impressive cl-launch project. It’s too bad cl-launch
isn’t more widely packaged, since it seems like a good idea.
I may add more utility features to this template repository, but I’ll also try to keep it simple and self-contained. Self-contained meaning after the initial git clone
there’s no need to go back to the Internet for more libraries.
This is only meant for utility scripts (and for me as a learning exercise for ASDF and Common Lisp packages). It is available in my Sourcehut, and mirrored to Microsoft GitHub.
For bigger projects, check out Quickproject, and for installing newer Common Lisp implementations than your operating system provides, consider Roswell.
Thanks to Didier Verna for help with ASDF and for quickly incorporating into CLON some new features I requested.