toxic: 0.15.1 -> 0.16.0
[NixPkgs.git] / pkgs / development / tools / analysis / pmd / default.nix
blob567699b6b3c604d2d0e5888332fc6bab15193534
2   lib,
3   stdenv,
4   fetchurl,
5   unzip,
6   makeWrapper,
7   openjdk,
8 }:
10 stdenv.mkDerivation rec {
11   pname = "pmd";
12   version = "6.55.0";
14   src = fetchurl {
15     url = "https://github.com/pmd/pmd/releases/download/pmd_releases/${version}/pmd-bin-${version}.zip";
16     hash = "sha256-Iaz5bUPLQNWRyszMHCCmb8eW6t32nqYYEllER7rHoR0=";
17   };
19   nativeBuildInputs = [
20     unzip
21     makeWrapper
22   ];
24   dontConfigure = true;
25   dontBuild = true;
27   installPhase = ''
28     runHook preInstall
30     install -Dm755 bin/run.sh $out/libexec/pmd
31     install -Dm644 lib/*.jar -t $out/lib/pmd
33     wrapProgram $out/libexec/pmd \
34         --prefix PATH : ${openjdk.jre}/bin \
35         --set LIB_DIR $out/lib/pmd
37     for app in pmd cpd cpdgui designer bgastviewer designerold ast-dump; do
38         makeWrapper $out/libexec/pmd $out/bin/$app --argv0 $app --add-flags $app
39     done
41     runHook postInstall
42   '';
44   meta = with lib; {
45     description = "Extensible cross-language static code analyzer";
46     homepage = "https://pmd.github.io/";
47     changelog = "https://pmd.github.io/pmd-${version}/pmd_release_notes.html";
48     platforms = platforms.unix;
49     license = with licenses; [
50       bsdOriginal
51       asl20
52     ];
53   };