Yes, this is a great example of what I meant with "interactive" client. It takes over the input and output and has it's own shell. Instead I wanted something that looks and feels more like a regular unix tool. Especially that I can put the prompt on the command line (or stdin) and get output on stdout. Because then I can pipe the output and avoid copy-pasting. Small difference but a big quality of life improvement for me.
The actual smart-ass haskell response is simply "take 12". The spec didn't specify this needed to be a impure shell command, so a pure function is obviously better.
Well, for smart-ass (and I know you meant it as a joke) is not very impressive. Don't do anything more than the others, and the syntax is not so great either.
"Since there's no way to roll back server upgrades"
It is if you run a modern filesystem like ZFS or btrfs. You just do a cheap snapshot before upgrading(can be automated) and roll back if there are problems. Even works with lvm.
rolling back a LVM snapshot involves dding off the snapshot, and on to whatever you want your production disk to be (or just running off the snapshot forever, which has.... performance consequences with LVM.)
Yes, LVM snapshots exist, but they are of limited utility compared to ZFS and the like.
I've been experimenting with CentOS6 and ZFS on Linux; so far it looks pretty good. it handles failing consumer grade hard drives vastly better than lvm on md, and snapshots are inexpensive.
While initially conceptually easier to grasp, that is far inferior to using a snapshot.
Here's a short list of ways in which that may cause you problems:
1) gzip of a path is not point in time, synced files may no longer be in sync since they were backed up at slightly different times (e.g. I hope you didn't expect database consistency to actually mean anything).
2) gzip of a path will take a while, because it has to actually function on every file (a snapshot is generally copy on write, meaning it's "free" (not quite) for every file until it's changed. Throw away the snapshot before a change and there's no need to copy the file.
Or, you could try out NixOS/GuixSD, which support transactional upgrades and rollbacks for the full system. No need to take a disk image (outside of your normal backup routine, of course).