A pure, fast and limited version of Clojure in Clojure for shell scripting.
Properties:
Experimental. Not all Clojure core functions are supported yet, but can be easily added. PRs welcome.
The first argument to bb
is the form to be executed. There is one special
variable, *in*
.
If the first argument is --version
, then bb
will print the version and exit.
Examples:
$ echo 1 | bb '(inc *in*)'
2
$ echo '[1 1 1 1 2]' | bb '(vec (dedupe *in*))'
[1 2]
$ echo '[1 1 1 1 2]' | bb '(inc (first *in*))'
2
$ echo '[{:foo 1} {:bar 2}]' | bb '(filter :foo *in*)'
({:foo 1})
$ echo '"babashka"' | bb '(re-find (re-pattern "b.b.*") *in*)'
"babashka"
Test the JVM version:
script/test
Test the native version:
BABASHKA_TEST_ENV=native script/test
You will need leiningen and GraalVM.
script/compile
Copyright © 2019 Michiel Borkent
Distributed under the EPL License, same as Clojure. See LICENSE.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close