1 { lib, stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk, writeScript
2 , common-updater-scripts, cacert, git, nixfmt-classic, nix, jq, coreutils
5 stdenv.mkDerivation rec {
7 rev = "408f74841b90169a7f674955389212e2d02f7f4d";
8 version = "2024-09-28";
10 src = fetchFromGitHub {
14 sha256 = "2iXNs2Ks54Gj6T6PR5AtWrmR9uUxgFScAfek2v+qdTo=";
19 nativeBuildInputs = [ makeWrapper ];
26 substituteInPlace bin/sbt --replace 'declare java_cmd="java"' 'declare java_cmd="${jdk}/bin/java"'
28 install bin/sbt $out/bin
30 wrapProgram $out/bin/sbt --prefix PATH : ${lib.makeBinPath [ which curl ]}
35 doInstallCheck = true;
36 installCheckPhase = ''
37 $out/bin/sbt -h >/dev/null
40 passthru.updateScript = writeScript "update.sh" ''
45 common-updater-scripts
56 oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
57 latestSha="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits\?sha\=master\&since\=$oldVersion | jq -r '.[0].sha')"
58 if [ ! "null" = "$latestSha" ]; then
59 nixpkgs="$(git rev-parse --show-toplevel)"
60 default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix"
61 latestDate="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits/$latestSha | jq '.commit.committer.date' | sed 's|"\(.*\)T.*|\1|g')"
62 update-source-version ${pname} "$latestSha" --version-key=rev
63 update-source-version ${pname} "$latestDate" --ignore-same-hash
66 echo "${pname} is already up-to-date"
72 "A more featureful runner for sbt, the simple/scala/standard build tool";
73 homepage = "https://github.com/paulp/sbt-extras";
74 license = lib.licenses.bsd3;
75 maintainers = with lib.maintainers; [ nequissimus puffnfresh ];
77 platforms = lib.platforms.unix;