pari: 2.15.5 -> 2.17.1 (#348442)
[NixPkgs.git] / pkgs / by-name / so / sonar-scanner-cli / package.nix
blob7eebc2693c9d1b73141dada3bc71e15ad2da44d8
2   lib,
3   coreutils,
4   fetchFromGitHub,
5   jre,
6   libarchive,
7   makeWrapper,
8   maven,
9   nix-update-script,
12 maven.buildMavenPackage rec {
13   pname = "sonar-scanner-cli";
14   version = "6.2.1.4610";
16   src = fetchFromGitHub {
17     owner = "SonarSource";
18     repo = "sonar-scanner-cli";
19     tag = version;
20     hash = "sha256-k1gZO3h6ZGwxJNQ5QwUH96aDPGpJuEn6HYUsYOpqo+g=";
21   };
23   mvnHash = "sha256-RNWE9wjX2CP6G/Hoh/vJExUkTEsSh5D+1PAMZ9TuIh0=";
25   mvnParameters = "-Dproject.build.outputTimestamp=1980-01-01T00:00:02Z";
27   nativeBuildInputs = [
28     # For bsdtar (name is a misnomer since it handles multiple archive formats) to extract nested directories from .zip files.
29     libarchive
30     makeWrapper
31   ];
33   doCheck = false;
35   # The .zip file with the programs is placed at "target/sonar-scanner-{project.version}.zip".
36   #
37   # To compute this .zip file path directly, we need to get the project version from the project's pom.xml.
38   #
39   # Parsing pom.xml is unsafe because project versions can be set dynamically. We need to use maven-help-plugin to get the evaluated value instead.
40   #
41   # Network isolation, however, prevents Maven from downloading packages in our shell script so we can't do this:
42   #
43   #   MAVEN_PROJECT_VERSION=$(mvn org.apache.maven.plugins:maven-help-plugin:3.4.1:evaluate \
44   #     -Dmaven.repo.local=.m2 \
45   #     -Dexpression=project.version \
46   #     -DforceStdout \
47   #     --quiet)
48   #
49   # We'll use wildcard expansion instead to find (what should be) the only .zip file in the "target" directory.
50   installPhase = ''
51     mkdir $out
53     FILES=(target/sonar-scanner-*.zip)
54     bsdtar --extract --file ''${FILES[0]} --strip-components 1 --directory $out
56     wrapProgram $out/bin/sonar-scanner \
57       --prefix PATH : ${
58         lib.makeBinPath [
59           coreutils
60           jre
61         ]
62       } \
63       --set JAVA_HOME ${jre}
65     wrapProgram $out/bin/sonar-scanner-debug \
66       --prefix PATH : ${lib.makeBinPath [ coreutils ]}
67   '';
69   passthru = {
70     updateScript = nix-update-script { };
71   };
73   meta = {
74     description = "Scanner CLI for SonarQube and SonarCloud";
75     homepage = "https://github.com/SonarSource/sonar-scanner-cli";
76     license = lib.licenses.lgpl3Only;
77     mainProgram = "sonar-scanner";
78     platforms = lib.platforms.unix;
79     maintainers = with lib.maintainers; [ peterromfeldhk ];
80   };