Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib, stdenv, fetchurl, unzip, makeWrapper, openjdk }: 2 3stdenv.mkDerivation rec { 4 pname = "pmd"; 5 version = "6.55.0"; 6 7 src = fetchurl { 8 url = "https://github.com/pmd/pmd/releases/download/pmd_releases/${version}/pmd-bin-${version}.zip"; 9 hash = "sha256-Iaz5bUPLQNWRyszMHCCmb8eW6t32nqYYEllER7rHoR0="; 10 }; 11 12 nativeBuildInputs = [ unzip makeWrapper ]; 13 14 dontConfigure = true; 15 dontBuild = true; 16 17 installPhase = '' 18 runHook preInstall 19 20 install -Dm755 bin/run.sh $out/libexec/pmd 21 install -Dm644 lib/*.jar -t $out/lib/pmd 22 23 wrapProgram $out/libexec/pmd \ 24 --prefix PATH : ${openjdk.jre}/bin \ 25 --set LIB_DIR $out/lib/pmd 26 27 for app in pmd cpd cpdgui designer bgastviewer designerold ast-dump; do 28 makeWrapper $out/libexec/pmd $out/bin/$app --argv0 $app --add-flags $app 29 done 30 31 runHook postInstall 32 ''; 33 34 meta = with lib; { 35 description = "An extensible cross-language static code analyzer"; 36 homepage = "https://pmd.github.io/"; 37 changelog = "https://pmd.github.io/pmd-${version}/pmd_release_notes.html"; 38 platforms = platforms.unix; 39 license = with licenses; [ bsdOriginal asl20 ]; 40 }; 41}