diff options
author | AndersonTorres <torres.anderson.85@protonmail.com> | 2020-04-04 18:20:32 -0300 |
---|---|---|
committer | AndersonTorres <torres.anderson.85@protonmail.com> | 2020-04-04 18:34:09 -0300 |
commit | 78cd46512c0ca2374474edfd86cee7ec2407cb57 (patch) | |
tree | a26cc0df8ad1ccb606bb56e59701982580fa91d6 /pkgs/development/interpreters/clojure/babashka.nix | |
parent | 1eae7fb887413d9cc50b292eade8b9c9a03c73bd (diff) | |
download | nixlib-78cd46512c0ca2374474edfd86cee7ec2407cb57.tar nixlib-78cd46512c0ca2374474edfd86cee7ec2407cb57.tar.gz nixlib-78cd46512c0ca2374474edfd86cee7ec2407cb57.tar.bz2 nixlib-78cd46512c0ca2374474edfd86cee7ec2407cb57.tar.lz nixlib-78cd46512c0ca2374474edfd86cee7ec2407cb57.tar.xz nixlib-78cd46512c0ca2374474edfd86cee7ec2407cb57.tar.zst nixlib-78cd46512c0ca2374474edfd86cee7ec2407cb57.zip |
babashka: 0.0.71 -> 0.0.78
Diffstat (limited to 'pkgs/development/interpreters/clojure/babashka.nix')
-rw-r--r-- | pkgs/development/interpreters/clojure/babashka.nix | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/clojure/babashka.nix b/pkgs/development/interpreters/clojure/babashka.nix new file mode 100644 index 000000000000..db849bb542de --- /dev/null +++ b/pkgs/development/interpreters/clojure/babashka.nix @@ -0,0 +1,82 @@ +{ stdenv, fetchurl, graalvm8 }: + +with stdenv.lib; +stdenv.mkDerivation rec { + pname = "babashka"; + version = "0.0.78"; + + reflectionJson = fetchurl { + name = "reflection.json"; + url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-reflection.json"; + sha256 = "1m1nwdxjsc6bkdzkbsll316ly0c3qxaimjzyfph1220irjxnm7xf"; + }; + + src = fetchurl { + url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar"; + sha256 = "01w990zk5qjrbnc846snh6na002kdyrlrfnqwg03ibx20g3mr7if"; + }; + + dontUnpack = true; + + buildInputs = [ graalvm8 ]; + + buildPhase = '' + native-image \ + -jar ${src} \ + -H:Name=bb \ + -H:+ReportExceptionStackTraces \ + -J-Dclojure.spec.skip-macros=true \ + -J-Dclojure.compiler.direct-linking=true \ + "-H:IncludeResources=BABASHKA_VERSION" \ + "-H:IncludeResources=SCI_VERSION" \ + -H:ReflectionConfigurationFiles=${reflectionJson} \ + --initialize-at-run-time=java.lang.Math\$RandomNumberGeneratorHolder \ + --initialize-at-build-time \ + -H:Log=registerResource: \ + -H:EnableURLProtocols=http,https \ + --enable-all-security-services \ + -H:+JNI \ + --verbose \ + --no-fallback \ + --no-server \ + --report-unsupported-elements-at-runtime \ + "-J-Xmx3g" + ''; + + installPhase = '' + mkdir -p $out/bin + cp bb $out/bin/bb + ''; + + meta = with stdenv.lib; { + description = "A Clojure babushka for the grey areas of Bash"; + longDescription = '' + The main idea behind babashka is to leverage Clojure in places where you + would be using bash otherwise. + + As one user described it: + + I’m quite at home in Bash most of the time, but there’s a substantial + grey area of things that are too complicated to be simple in bash, but + too simple to be worth writing a clj/s script for. Babashka really + seems to hit the sweet spot for those cases. + + Goals: + + - Low latency Clojure scripting alternative to JVM Clojure. + - Easy installation: grab the self-contained binary and run. No JVM needed. + - Familiarity and portability: + - Scripts should be compatible with JVM Clojure as much as possible + - Scripts should be platform-independent as much as possible. Babashka + offers support for linux, macOS and Windows. + - Allow interop with commonly used classes like java.io.File and System + - Multi-threading support (pmap, future, core.async) + - Batteries included (tools.cli, cheshire, ...) + - Library support via popular tools like the clojure CLI + ''; + homepage = "https://github.com/borkdude/babashka"; + license = licenses.epl10; + platforms = graalvm8.meta.platforms; + maintainers = with maintainers; [ bhougland DerGuteMoritz jlesquembre ]; + }; +} |