at 23.05-pre 62 lines 1.6 kB view raw
1{ lib, stdenv, fetchFromGitHub, jre, makeWrapper, maven }: 2 3let 4 pname = "jd-cli"; 5 version = "1.2.1"; 6 7 src = fetchFromGitHub { 8 owner = "intoolswetrust"; 9 repo = pname; 10 rev = "${pname}-${version}"; 11 hash = "sha256-rRttA5H0A0c44loBzbKH7Waoted3IsOgxGCD2VM0U/Q="; 12 }; 13 14 deps = stdenv.mkDerivation { 15 name = "${pname}-${version}-deps"; 16 inherit src; 17 18 nativeBuildInputs = [ maven ]; 19 buildPhase = '' 20 mvn package -Dmaven.repo.local=$out 21 ''; 22 23 # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside 24 installPhase = '' 25 find $out -type f \ 26 -name \*.lastUpdated -or \ 27 -name resolver-status.properties -or \ 28 -name _remote.repositories \ 29 -delete 30 ''; 31 32 dontFixup = true; 33 outputHashAlgo = "sha256"; 34 outputHashMode = "recursive"; 35 outputHash = "sha256-5d3ZLuzoEkPjh01uL/BuhJ6kevLdsm1P4PMLkEWaVUM="; 36 }; 37 38in stdenv.mkDerivation rec { 39 inherit pname version src; 40 41 nativeBuildInputs = [ maven makeWrapper ]; 42 43 buildPhase = '' 44 mvn --offline -Dmaven.repo.local=${deps} package; 45 ''; 46 47 installPhase = '' 48 mkdir -p $out/bin $out/share/jd-cli 49 install -Dm644 jd-cli/target/jd-cli.jar $out/share/jd-cli 50 51 makeWrapper ${jre}/bin/java $out/bin/jd-cli \ 52 --add-flags "-jar $out/share/jd-cli/jd-cli.jar" 53 ''; 54 55 meta = with lib; { 56 description = "Simple command line wrapper around JD Core Java Decompiler project"; 57 homepage = "https://github.com/intoolswetrust/jd-cli"; 58 license = licenses.gpl3; 59 platforms = platforms.unix; 60 maintainers = with maintainers; [ majiir ]; 61 }; 62}