mirror of
https://github.com/status-im/status-react.git
synced 2025-01-09 10:42:53 +00:00
Jakub Sokołowski
20a0cc01f6
Refactoring the derivation that fetches all the POMs, JARs, and AARs in order to make it more generic and easier to extend. The main change is adding `files` key in `deps.json` which contains a dict of all the files reletad to given package. This way we can more easily include other files that might be available for download, like AARs with ASC suffix, or `nodeps` JARs. This is also necessary for the React Native upgrade: https://github.com/status-im/status-mobile/pull/15203 Signed-off-by: Jakub Sokołowski <jakub@status.im>
45 lines
1.3 KiB
Nix
45 lines
1.3 KiB
Nix
{ stdenv, lib, pkgs, fetchurl, writeShellScriptBin }:
|
|
|
|
let
|
|
inherit (lib) concatStrings concatMapStrings mapAttrsToList makeOverridable;
|
|
|
|
deps = lib.importJSON ./deps.json;
|
|
|
|
script = writeShellScriptBin "create-local-maven-repo" (''
|
|
mkdir -p $out
|
|
cd $out
|
|
'' +
|
|
# For each dependency in deps.json.
|
|
(concatMapStrings (dep: concatStrings
|
|
# And for each file in the 'files' dict of given dependency.
|
|
(mapAttrsToList (filename: hashes: let
|
|
# Download given file(POM, JAR, nodeps JAR, or AAR).
|
|
download = fetchurl {
|
|
url = "${dep.repo}/${dep.path}/${filename}";
|
|
inherit (hashes) sha256;
|
|
};
|
|
# And symlink it in the correct folder along with SHA1.
|
|
in ''
|
|
mkdir -p "${dep.path}"
|
|
ln -s "${download}" "${dep.path}/${filename}"
|
|
echo "${hashes.sha1}" > "${dep.path}/${filename}.sha1"
|
|
'')
|
|
dep.files)
|
|
) deps)
|
|
);
|
|
|
|
in makeOverridable stdenv.mkDerivation {
|
|
name = "status-mobile-maven-deps";
|
|
|
|
buildInputs = [ pkgs.aapt2 ];
|
|
|
|
phases = [ "buildPhase" "patchPhase" ];
|
|
buildPhase = "${script}/bin/create-local-maven-repo";
|
|
# Replace AAPT2 package only with our patched version from overlay.
|
|
patchPhase = ''
|
|
aapt2_dir=$out/com/android/tools/build/aapt2/${pkgs.aapt2.version}
|
|
mkdir -p $aapt2_dir
|
|
ln -sf ${pkgs.aapt2}/* $aapt2_dir
|
|
'';
|
|
}
|