nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at fix-function-merge 62 lines 1.7 kB view raw
1{ lib, stdenv, fetchurl, makeWrapper 2, coreutils, jdk, rlwrap, gnupg }: 3 4stdenv.mkDerivation rec { 5 pname = "leiningen"; 6 version = "2.11.2"; 7 8 src = fetchurl { 9 url = "https://codeberg.org/leiningen/leiningen/raw/tag/${version}/bin/lein-pkg"; 10 hash = "sha256-KKGmJmjF9Ce0E6hnfjdq/6qZXwI7H80G4tTJisHfXz4="; 11 }; 12 13 jarsrc = fetchurl { 14 url = "https://codeberg.org/leiningen/leiningen/releases/download/${version}/leiningen-${version}-standalone.jar"; 15 hash = "sha256-fTGuI652npJ0OLDNVdFak+faurCf1PwVh3l5Fh4Qh3Q="; 16 }; 17 18 JARNAME = "${pname}-${version}-standalone.jar"; 19 20 dontUnpack = true; 21 22 nativeBuildInputs = [ makeWrapper ]; 23 propagatedBuildInputs = [ jdk ]; 24 25 # the jar is not in share/java, because it's a standalone jar and should 26 # never be picked up by set-java-classpath.sh 27 28 installPhase = '' 29 runHook preInstall 30 31 mkdir -p $out/bin $out/share 32 cp -v $src $out/bin/lein 33 cp -v $jarsrc $out/share/$JARNAME 34 35 runHook postInstall 36 ''; 37 38 fixupPhase = '' 39 runHook preFixup 40 41 chmod +x $out/bin/lein 42 patchShebangs $out/bin/lein 43 substituteInPlace $out/bin/lein \ 44 --replace 'LEIN_JAR=/usr/share/java/leiningen-$LEIN_VERSION-standalone.jar' "LEIN_JAR=$out/share/$JARNAME" 45 wrapProgram $out/bin/lein \ 46 --prefix PATH ":" "${lib.makeBinPath [ rlwrap coreutils ]}" \ 47 --set LEIN_GPG ${gnupg}/bin/gpg \ 48 --set JAVA_CMD ${jdk}/bin/java 49 50 runHook postFixup 51 ''; 52 53 meta = { 54 homepage = "https://leiningen.org/"; 55 description = "Project automation for Clojure"; 56 sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; 57 license = lib.licenses.epl10; 58 platforms = jdk.meta.platforms; 59 maintainers = [ ]; 60 mainProgram = "lein"; 61 }; 62}