summary refs log tree commit diff
path: root/pkgs/build-support/fetchmavenartifact
diff options
context:
space:
mode:
authorhlolli <hlolli@gmail.com>2020-11-14 00:55:44 +0100
committerhlolli <hlolli@gmail.com>2020-11-14 00:55:44 +0100
commit49c789703ccb70acebfaec4388f543a9ad63520a (patch)
tree2f89173db980e42ef60b7c152882cba3f98c9653 /pkgs/build-support/fetchmavenartifact
parentc1dfbaa8ade7df9cabc2615664f052c593f04cab (diff)
downloadnixpkgs-49c789703ccb70acebfaec4388f543a9ad63520a.tar
nixpkgs-49c789703ccb70acebfaec4388f543a9ad63520a.tar.gz
nixpkgs-49c789703ccb70acebfaec4388f543a9ad63520a.tar.bz2
nixpkgs-49c789703ccb70acebfaec4388f543a9ad63520a.tar.lz
nixpkgs-49c789703ccb70acebfaec4388f543a9ad63520a.tar.xz
nixpkgs-49c789703ccb70acebfaec4388f543a9ad63520a.tar.zst
nixpkgs-49c789703ccb70acebfaec4388f543a9ad63520a.zip
fetchMavenArtifact: support artifact classifier syntax
Diffstat (limited to 'pkgs/build-support/fetchmavenartifact')
-rw-r--r--pkgs/build-support/fetchmavenartifact/default.nix19
1 files changed, 14 insertions, 5 deletions
diff --git a/pkgs/build-support/fetchmavenartifact/default.nix b/pkgs/build-support/fetchmavenartifact/default.nix
index 583a9ea396c..2058600960a 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.