base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / sb / sbt-extras / package.nix
blob385cfc5c087ae59bfdb0369502d7da46499280ec
1 { lib, stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk, writeScript
2 , common-updater-scripts, cacert, git, nixfmt-classic, nix, jq, coreutils
3 , gnused }:
5 stdenv.mkDerivation rec {
6   pname = "sbt-extras";
7   rev = "408f74841b90169a7f674955389212e2d02f7f4d";
8   version = "2024-09-28";
10   src = fetchFromGitHub {
11     owner = "paulp";
12     repo = "sbt-extras";
13     inherit rev;
14     sha256 = "2iXNs2Ks54Gj6T6PR5AtWrmR9uUxgFScAfek2v+qdTo=";
15   };
17   dontBuild = true;
19   nativeBuildInputs = [ makeWrapper ];
21   installPhase = ''
22     runHook preInstall
24     mkdir -p $out/bin
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 ]}
32     runHook postInstall
33   '';
35   doInstallCheck = true;
36   installCheckPhase = ''
37     $out/bin/sbt -h >/dev/null
38   '';
40   passthru.updateScript = writeScript "update.sh" ''
41      #!${stdenv.shell}
42      set -xo errexit
43      PATH=${
44        lib.makeBinPath [
45          common-updater-scripts
46          curl
47          cacert
48          git
49          nixfmt-classic
50          nix
51          jq
52          coreutils
53          gnused
54        ]
55      }
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
64        nixfmt "$default_nix"
65      else
66        echo "${pname} is already up-to-date"
67      fi
68   '';
70   meta = {
71     description =
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 ];
76     mainProgram = "sbt";
77     platforms = lib.platforms.unix;
78   };