This is somewhat inspired by https://github.com/amoffat/sh/, although Clojure macros make this quite a bit easier.