An assortment of handy Babashka CLIs: scripts and tasks. scripts strive to be compatible with Clojure.
Babashka >= 1.0.166 is required.
bb.edn contains global tasks i.e. tasks that are useful in any directory or project. To run these tasks from any directory, clone this repo and then use a shell function to reference the cloned directory:
function bbg() { BABASHKA_EDN=/path/to/this-repo/bb.edn bb --config
/path/to/this-repo/bb.edn $@ }
Run bbg tasks
to see all the available tasks.
Scripts/commands/executables are located in bin/
. To use an individual script, simply copy
and use it:
$ curl -o bb-github-repo https://raw.githubusercontent.com/cldwalker/bb-clis/master/bin/bb-github-repo
$ chmod +x bb-github-repo
$ ./bb-github-repo -h
If you want to use all scripts in this repo, then put bin/
on $PATH
:
$ git clone https://github.com/cldwalker/bb-clis
$ export PATH=$PATH:$HOME/path/to/bb-clis/bin
See scripts.md which provides useful examples of several scripts.
Code is organized as follows:
src/cldwalker/bb-clis/tasks/
- Namespaces that are mainly run within babashka taskssrc/cldwalker/bb-clis/cli/
- Namespaces that useful to scripts and possibly tasks.src/cldwalker/bb-clis/util/
- Namespaces that are useful to any clojure or bb program, not just CLIs.
Babashka supports $BABASHA_PRELOADS
which allows arbitrary clojure to be run at the start of each invocation. This is handy for loading one's preferred set of vars and namespaces, especially when paired with an alias. For example, alias bbp="BABASHKA_PRELOADS='(load-file (str (System/getenv \"HOME\") \"/path/to/this-repo/preloads.clj\"))' bb"
Preloaded fns like pprint
are then available on the commandline:
bbp '(->> (System/getenv) (into {}) pprint)'
See LICENSE.md
- For more bb setup and aliases, see my dotfiles repo
- See https://github.com/borkdude/babashka/blob/master/doc/examples.md for additional babashka cmd examples