Fleck: A Lisp that runs wherever Bash is
github.com
github.com
Fleck does not require a compiled executable to be installed.
As long as you have bash Fleck will work. For scsh you have to have to install platform specific executable. If it is available in a particular distro, perhaps it is not that bad.
I write, these days, a lot of Ansible installation tools For Multiple versions of (and almost bare) linux, freebsd, openbsd (and hopefully at some point for DragonFlyBSD).
Today, I have to write shell-specific scripts to do application-centric process management, application-centric backup preparation steps, health monitors, smoke tests and so on.
To minimize my work, I instruct Ansible to preinstall bash everywhere... and then I run the bash scripts.
But writing bash scripts is, well,... unsettling (hard to get used to primitive return values, lack of normal enumerated parameter passing and so on)
With Fleck (at least this is my reading), I will be able to install Fleck via Ansible and then write all the scripts in Scheme (which I much prefer compared to bash, zsh or anything else).
I guess, if, in the future, Fleck will help me to avoid worrying about Powershell, kornshell and so on -- I would be delighted.
Sort of like shell-vm on top of base shells :-)
>hopefully at some point for DragonFlyBSD
What advantage of DragonFlyBSD you see today over other OSs?
Our needs are such, that writes are relatively rare, and go into one cluster, while reads of our blobs, need to go to geographically distributed nodes, whose disk topology is different (less capable) than that of a muster, plus they have somewhat-unreliable connectivity to the master.
So Hammer's network-problems-tolerant streaming replication and offline de-duplication is attractive, at least conceptually.
Wait a minute. I may be mistaken, but I thought Ansible needed Python on the managed machines, to run some of the modules. Afaik it uploads some Python code via ssh before doing the work proper.
(https://docs.ansible.com/ansible/latest/installation_guide/i...)
Notably, depending on the platform, transpiling on-the-fly may be feasible for scripting. Fennel, on Lua, does its thing pretty damn fast even on my horribly underpowered machine.
to run a bash command i need to do: (sh* "echo >&2 hello")
what i expected is: (echo >&2 hello)
or possibly (sh* echo >&2 hello)
if i have to quote the whole bash command, then this becomes impractical because it adds an additional quoting layer, and doesn't make bash quoting any easier.
Just in time ...
> Starting with macOS Catalina, your Mac uses zsh as the default login shell and interactive shell. You can make zsh the default in earlier versions of macOS as well.
Apple is trying to move macOS users to zsh because they like the license (it is MIT-like) and hence will be keeping up to date with new versions of it, instead of being stuck in the past like they are with bash.