summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers/sbt
diff options
context:
space:
mode:
authorTim Steinbach <tim@nequissimus.com>2020-11-03 11:16:05 -0500
committerTim Steinbach <tim@nequissimus.com>2020-11-03 11:39:06 -0500
commitd92254fbebc909465fc5c394bf54201ea3242165 (patch)
treeec377934911e2c2c1004e6453d3d08715026cd94 /pkgs/development/tools/build-managers/sbt
parentf290e0ec6bb805a5858f8d9eaa14126da52efd22 (diff)
downloadnixpkgs-d92254fbebc909465fc5c394bf54201ea3242165.tar
nixpkgs-d92254fbebc909465fc5c394bf54201ea3242165.tar.gz
nixpkgs-d92254fbebc909465fc5c394bf54201ea3242165.tar.bz2
nixpkgs-d92254fbebc909465fc5c394bf54201ea3242165.tar.lz
nixpkgs-d92254fbebc909465fc5c394bf54201ea3242165.tar.xz
nixpkgs-d92254fbebc909465fc5c394bf54201ea3242165.tar.zst
nixpkgs-d92254fbebc909465fc5c394bf54201ea3242165.zip
sbt: Add update script
Diffstat (limited to 'pkgs/development/tools/build-managers/sbt')
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix20
1 files changed, 19 insertions, 1 deletions
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 2ff15d68871..7cddc1acf73 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, jre, autoPatchelfHook, zlib }:
+{ stdenv, fetchurl, jre, autoPatchelfHook, zlib, writeScript, common-updater-scripts, git, nixfmt, nix, coreutils, gnused }:
 
 stdenv.mkDerivation rec {
   pname = "sbt";
@@ -34,4 +34,22 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nequissimus ];
     platforms = platforms.unix;
   };
+
+  passthru.updateScript = writeScript "update.sh" ''
+    #!${stdenv.shell}
+    set -o errexit
+    PATH=${stdenv.lib.makeBinPath [ common-updater-scripts git nixfmt nix coreutils gnused ]}
+
+    oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion sbt" | tr -d '"')"
+    latestTag="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags git@github.com:sbt/sbt.git '*.*.*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^v||g')"
+
+    if [ ! "$oldVersion" = "$latestTag" ]; then
+      update-source-version sbt "$latestTag" --version-key=version --print-changes
+      nixpkgs="$(git rev-parse --show-toplevel)"
+      default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix"
+      nixfmt "$default_nix"
+    else
+      echo "sbt is already up-to-date"
+    fi
+  '';
 }