cmd
janet-sh
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cmd
- Getting started with lisp
-
writing scripts in lisp
In CL, there is also https://github.com/ruricolist/cmd on top of uiop:run-program / launch-program to quickly run commands.
-
Running docker commands from Common Lisp REPLs
+1. To write quick shell commands, see also cmd: https://github.com/ruricolist/cmd
-
Portable Lisp Dialects with Solid UNIX and Systems Programming Support?
A nice library that makes running shell programs even easier than uiop:run-program: https://github.com/ruricolist/cmd
-
How to run external commands?
uiop:run/launch-program (sync/async): https://lispcookbook.github.io/cl-cookbook/os.html#running-external-programs and the handy cmd which builds on it: https://github.com/ruricolist/cmd
-
[Common Lisp] Best Libraries for Interfacing with UNIX-like Operating Systems?
Some ideas/reminders/pointers: do not miss uiop:run-process and launch-process to run (a)sync programs; see cmd for an easier to use equivalent; see file-object-finder for a high-level lib around files (it handles file permissions). clawk replaces AWK.
-
Guides on Learning to Use Lisp Instead of Shell Script?
To operate on files and directories, see UIOP and this new library: https://github.com/Ambrevar/fof (File Object Finder). You could start using the Lem editor and Lisp REPL, the Nyxt browser, this basic file manager (https://github.com/szos/CLFM), cmd to fire external commands (https://github.com/ruricolist/cmd).
-
A Lisp REPL as my main shell
There is https://github.com/ruricolist/cmd in particular which is very helpful.
I'm going to publish a few more libraries which should help with file manipulation (as I demoed it).
Stay tuned!
-
ruricolist/cmd - utility for running external programs.
As for cmd, I just cloned it into local-projects, so it's the development version. This seems to be the line where exo is called and I don't think it's defined anywhere: https://github.com/ruricolist/cmd/blob/master/cmd.lisp#L374
janet-sh
- Writing Small CLI Programs in Common Lisp (2021)
-
Getting started with lisp
Right now, the one that is most attractive is Janet, with its wonderful shell programming integration and built-in http request. Those are both things I'm working a lot with.
-
Janet – a Lisp-like functional, imperative programming language
I use Janet most often as a glue for shell utilities using the sh package (https://github.com/andrewchambers/janet-sh). It's a great tool for building small containerized jobs. I think it has a ton of potential as the ecosystem grows and matures.
Some rough spots:
- No canonical http client. There are a few attempts at wrapping libcurl but nothing complete and well documented yet. However, the creator of Joy framework for Janet does have an http client library.
- The main http server circlet is MIT licensed, but it is built on top of Mongoose, which is GPL/paid commercial. Something to be aware of if you want to distribute binaries made with this library.
- I have never been successful getting any of the UI or drawing libraries to work.
- Naming of packages is a bit confusing even if you have watched the Good Place and are aware of all of the inside jokes.
-
Writing Small CLI Programs in Common Lisp
The arguments I have seen are based on Janet using arrays/tuples rather than cons cells. Here is the author addressing this on reddit a while back. https://old.reddit.com/r/programming/comments/aqwedz/janet_i...
The debate continues in the thread. Either way, I think Janet is very useful for situations where you want something lisp like and also want/need small executables. I've experimented with it quite a bit and have found it really useful for putting together cli apps. The sh package is really useful for gluing together other shell programs. https://github.com/andrewchambers/janet-sh
What are some alternatives?
CLFM - Common Lisp File Manager
roswell - intended to be a launcher for a major lisp environment that just works.
scsh - A Unix shell embedded in scheme
janetdocs - A community documentation site for the janet programming language
linedit - Readline-style line-editor for Common Lisp.
termp - Trivial utility: are we in a terminal window or in a dumb one? (like Emacs' Slime)
xonsh - :shell: Python-powered, cross-platform, Unix-gazing shell.
freja - Self-modifiable editor for coding graphical things
lish - Lisp Shell
janet-pobox - Clojure like atoms/spinlocking in Janet
pipeline
hofmod-cli - Hofstadter generator for Golang CLIs