aboutsummaryrefslogtreecommitdiff
path: root/pkgs/build-support
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
parentc1dfbaa8ade7df9cabc2615664f052c593f04cab (diff)
fetchMavenArtifact: support artifact classifier syntax
Diffstat (limited to 'pkgs/build-support')
-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 583a9ea396cf..2058600960ae 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.