diff options
author | hlolli <hlolli@gmail.com> | 2020-11-14 00:55:44 +0100 |
---|---|---|
committer | hlolli <hlolli@gmail.com> | 2020-11-14 00:55:44 +0100 |
commit | 49c789703ccb70acebfaec4388f543a9ad63520a (patch) | |
tree | 2f89173db980e42ef60b7c152882cba3f98c9653 /pkgs/build-support/fetchmavenartifact/default.nix | |
parent | c1dfbaa8ade7df9cabc2615664f052c593f04cab (diff) |
fetchMavenArtifact: support artifact classifier syntax
Diffstat (limited to 'pkgs/build-support/fetchmavenartifact/default.nix')
-rw-r--r-- | pkgs/build-support/fetchmavenartifact/default.nix | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/pkgs/build-support/fetchmavenartifact/default.nix b/pkgs/build-support/fetchmavenartifact/default.nix index 583a9ea396cfa..2058600960ae4 100644 --- a/pkgs/build-support/fetchmavenartifact/default.nix +++ b/pkgs/build-support/fetchmavenartifact/default.nix @@ -36,19 +36,28 @@ assert (repos != []) || (url != "") || (urls != []); let + classifierSplit = + with stdenv.lib.strings; + splitString "$" artifactId; + artifactId_ = builtins.head classifierSplit; + classifier = + with stdenv.lib; + if builtins.length classifierSplit > 1 + then concatStrings ["-" (builtins.elemAt classifierSplit 1)] + else ""; name_ = with stdenv.lib; concatStrings [ (replaceChars ["."] ["_"] groupId) "_" - (replaceChars ["."] ["_"] artifactId) "-" + (replaceChars ["."] ["_"] artifactId_) "-" version ]; mkJarUrl = repoUrl: with stdenv.lib; concatStringsSep "/" [ (removeSuffix "/" repoUrl) (replaceChars ["."] ["/"] groupId) - artifactId + artifactId_ version - "${artifactId}-${version}.jar" + "${artifactId_}-${version}${classifier}.jar" ]; urls_ = if url != "" then [url] @@ -57,7 +66,7 @@ let jar = fetchurl ( builtins.removeAttrs args ["groupId" "artifactId" "version" "repos" "url" ] - // { urls = urls_; name = "${name_}.jar"; } + // { urls = urls_; name = "${name_}${classifier}.jar"; } ); in stdenv.mkDerivation { @@ -67,7 +76,7 @@ in # packages packages that mention this derivation in their buildInputs. installPhase = '' mkdir -p $out/share/java - ln -s ${jar} $out/share/java/${artifactId}-${version}.jar + ln -s ${jar} $out/share/java/${artifactId_}-${version}${classifier}.jar ''; # We also add a `jar` attribute that can be used to easily obtain the path # to the downloaded jar file. |