diff --git a/README.md b/README.md index d366c9ab..87726412 100644 --- a/README.md +++ b/README.md @@ -227,6 +227,7 @@ enumerated explicitly. - [`clojure.data.csv`](https://github.com/clojure/data.csv) aliased as `csv` - [`cheshire.core`](https://github.com/dakrone/cheshire) aliased as `json` - [`cognitect.transit`](https://github.com/cognitect/transit-clj) aliased as `transit` +- [`bencode.core`](https://github.com/nrepl/bencode) aliased as `bencode`: `read-bencode`, `write-bencode`. A selection of java classes are available, see `babashka/impl/classes.clj`. diff --git a/script/lib_tests/bencode_test b/script/lib_tests/bencode_test new file mode 100755 index 00000000..1fc96a12 --- /dev/null +++ b/script/lib_tests/bencode_test @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -eou pipefail + +export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {borkdude/bencode {:git/url "https://github.com/borkdude/bencode" :sha "fc2bd007fee318cb04fdb9e0844e69d42cacaf36" :deps/manifest :deps}}}' -Spath) + +ENV=${BABASHKA_TEST_ENV:-} + +if [ "$ENV" = "native" ]; then + BB_CMD="./bb" +else + BB_CMD="lein bb" +fi + +$BB_CMD -e " +(require '[bencode.core :as bencode] :reload-all) +(with-open [os (java.io.ByteArrayOutputStream.)] (bencode/write-bencode os {\"greeting\" \"Good morning\"}) (str os)) +" diff --git a/script/run_lib_tests b/script/run_lib_tests index aaa56bf3..720a5438 100755 --- a/script/run_lib_tests +++ b/script/run_lib_tests @@ -11,3 +11,4 @@ script/lib_tests/medley_test script/lib_tests/babashka_curl_test script/lib_tests/cprop_test script/lib_tests/comb_test +script/lib_tests/bencode_test diff --git a/src/babashka/impl/classes.clj b/src/babashka/impl/classes.clj index 29fbc403..fc500fe1 100644 --- a/src/babashka/impl/classes.clj +++ b/src/babashka/impl/classes.clj @@ -31,6 +31,7 @@ java.lang.ArithmeticException java.lang.AssertionError java.lang.Boolean + java.lang.Byte java.lang.Class java.lang.Double java.lang.Exception diff --git a/src/babashka/main.clj b/src/babashka/main.clj index e1f7c80b..e893bd52 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -357,6 +357,7 @@ Everything after that is bound to *command-line-args*.")) :imports '{ArithmeticException java.lang.ArithmeticException AssertionError java.lang.AssertionError Boolean java.lang.Boolean + Byte java.lang.Byte Class java.lang.Class Double java.lang.Double Exception java.lang.Exception