about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters/clojure/babashka.nix')
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/babashka.nix69
1 files changed, 24 insertions, 45 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
index df75a233fff4..93755e83a3d6 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
@@ -1,61 +1,41 @@
-{ lib, stdenv, fetchurl, graalvm11-ce, glibcLocales }:
+{ lib, buildGraalvmNativeImage, fetchurl, writeScript }:
 
-stdenv.mkDerivation rec {
+buildGraalvmNativeImage rec {
   pname = "babashka";
-  version = "0.6.1";
+  version = "0.7.3";
 
   src = fetchurl {
     url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-s0fZzx/sEAUwXY2cx2ODDhwIrJb5LykFgHBcscsZQO0=";
+    sha256 = "sha256-zbxFMc02hbsU2ERlUzqMBHwHYfORB7TkMINrKC52PPU=";
   };
 
-  dontUnpack = true;
+  executable = "bb";
 
-  nativeBuildInputs = [ graalvm11-ce glibcLocales ];
+  extraNativeImageBuildArgs = [
+    "-H:+ReportExceptionStackTraces"
+    "--no-fallback"
+    "--native-image-info"
+  ];
 
-  LC_ALL = "en_US.UTF-8";
-  BABASHKA_JAR = src;
-  BABASHKA_BINARY = "bb";
-  BABASHKA_XMX = "-J-Xmx4500m";
-
-  buildPhase = ''
-    runHook preBuild
-
-    # https://github.com/babashka/babashka/blob/v0.6.1/script/compile#L41-L52
-    args=("-jar" "$BABASHKA_JAR"
-          "-H:CLibraryPath=${graalvm11-ce.lib}/lib"
-          # Required to build babashka on darwin. Do not remove.
-          "${lib.optionalString stdenv.isDarwin "-H:-CheckToolchain"}"
-          "-H:Name=$BABASHKA_BINARY"
-          "-H:+ReportExceptionStackTraces"
-          # "-H:+PrintAnalysisCallTree"
-          # "-H:+DashboardAll"
-          # "-H:DashboardDump=reports/dump"
-          # "-H:+DashboardPretty"
-          # "-H:+DashboardJson"
-          "--verbose"
-          "--no-fallback"
-          "--native-image-info"
-          "$BABASHKA_XMX")
-
-     native-image ''${args[@]}
-
-     runHook postBuild
+  installCheckPhase = ''
+    $out/bin/bb --version | grep '${version}'
+    $out/bin/bb '(+ 1 2)' | grep '3'
+    $out/bin/bb '(vec (dedupe *input*))' <<< '[1 1 1 1 2]' | grep '[1 2]'
   '';
 
-  installPhase = ''
-    runHook preInstall
+  passthru.updateScript = writeScript "update-babashka" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl common-updater-scripts jq
 
-    mkdir -p $out/bin
-    cp bb $out/bin/bb
+    set -euo pipefail
 
-    runHook postInstall
-  '';
+    readonly latest_version="$(curl \
+      ''${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
+      -s "https://api.github.com/repos/babashka/babashka/releases/latest" \
+      | jq -r '.tag_name')"
 
-  installCheckPhase = ''
-    $out/bin/bb --version | grep '${version}'
-    $out/bin/bb '(+ 1 2)' | grep '3'
-    $out/bin/bb '(vec (dedupe *input*))' <<< '[1 1 1 1 2]' | grep '[1 2]'
+    # v0.6.2 -> 0.6.2
+    update-source-version babashka "''${latest_version/v/}"
   '';
 
   meta = with lib; {
@@ -87,7 +67,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/babashka/babashka";
     changelog = "https://github.com/babashka/babashka/blob/v${version}/CHANGELOG.md";
     license = licenses.epl10;
-    platforms = graalvm11-ce.meta.platforms;
     maintainers = with maintainers; [
       bandresen
       bhougland