It’s a good article and I learned a couple tricks. There are 2 main caveats: starting SBCL like this and not from a binary takes a little time. You don’t have batteries included. Want a HTTP client, a CSV parser? You have to quickload them and this adds up in the startup time.
That’s why I started CIEL, CL with batteries included, of which you can get a binary and run scripts that start fast and can do common tasks. It’s also a superset of useful libraries that you can quickload or use with a core image (for a fast startup in your editor).
You can also use my CL configuration management system, Consfigurator, for this sort of thing. As systems administration is expected to involve doing shell script-like things, there are various relevant utilities built-in, and external libraries already pulled in. It also has some Perl-like reader macros, such as #~s/foo/bar/, and even Emacs support for those.
There is also inferior-shell, which I have been thinking of using in combination with Consfigurator.
It’s a good article and I learned a couple tricks. There are 2 main caveats: starting SBCL like this and not from a binary takes a little time. You don’t have batteries included. Want a HTTP client, a CSV parser? You have to quickload them and this adds up in the startup time.
That’s why I started CIEL, CL with batteries included, of which you can get a binary and run scripts that start fast and can do common tasks. It’s also a superset of useful libraries that you can quickload or use with a core image (for a fast startup in your editor).
https://github.com/ciel-lang/CIEL/
http://ciel-lang.org/
It’s in beta, polishing phase.
BTW:
except a shebang only accepts 1 arg. Another reason for
#!/usr/bin/env ciel
.Very cool. I added this link to my blog post from 2022.
More Lisp-y solutions - https://github.com/oilshell/oil/wiki/Internal-DSLs-for-Shell#lisp-y-languages
(and solutions in basically every other language too!)
If you want to have Common Lisp implementation agnostic way to script, Roswell works nicely as a scripting environment. [1]
[1] https://roswell.github.io/Roswell-as-a-Scripting-Environment.html
You can also use my CL configuration management system, Consfigurator, for this sort of thing. As systems administration is expected to involve doing shell script-like things, there are various relevant utilities built-in, and external libraries already pulled in. It also has some Perl-like reader macros, such as
#~s/foo/bar/
, and even Emacs support for those.There is also inferior-shell, which I have been thinking of using in combination with Consfigurator.