about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorYureka <yuka@yuka.dev>2022-10-02 22:41:31 +0200
committerGitHub <noreply@github.com>2022-10-02 22:41:31 +0200
commitaa3dc6440efbf5ad99b77ccb170f74c3784c17fd (patch)
treecd8199b0267a2bab64ea1a1643c134f786d484c7 /pkgs/build-support
parent770492307c0118c4afac3934dd982da5116dff05 (diff)
downloadnixlib-aa3dc6440efbf5ad99b77ccb170f74c3784c17fd.tar
nixlib-aa3dc6440efbf5ad99b77ccb170f74c3784c17fd.tar.gz
nixlib-aa3dc6440efbf5ad99b77ccb170f74c3784c17fd.tar.bz2
nixlib-aa3dc6440efbf5ad99b77ccb170f74c3784c17fd.tar.lz
nixlib-aa3dc6440efbf5ad99b77ccb170f74c3784c17fd.tar.xz
nixlib-aa3dc6440efbf5ad99b77ccb170f74c3784c17fd.tar.zst
nixlib-aa3dc6440efbf5ad99b77ccb170f74c3784c17fd.zip
fetchYarnDeps: support passing src attribute (#193047)
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/node/fetch-yarn-deps/default.nix19
1 files changed, 12 insertions, 7 deletions
diff --git a/pkgs/build-support/node/fetch-yarn-deps/default.nix b/pkgs/build-support/node/fetch-yarn-deps/default.nix
index 6d67b87915ac..4cf2507706ae 100644
--- a/pkgs/build-support/node/fetch-yarn-deps/default.nix
+++ b/pkgs/build-support/node/fetch-yarn-deps/default.nix
@@ -42,31 +42,36 @@ in {
   fetchYarnDeps = let
     f = {
       name ? "offline",
-      yarnLock,
+      src ? null,
       hash ? "",
       sha256 ? "",
-    }: let
+      ...
+    }@args: let
       hash_ =
         if hash != "" then { outputHashAlgo = null; outputHash = hash; }
         else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
         else { outputHashAlgo = "sha256"; outputHash = lib.fakeSha256; };
-    in stdenv.mkDerivation {
+    in stdenv.mkDerivation ({
       inherit name;
 
-      dontUnpack = true;
+      dontUnpack = src == null;
       dontInstall = true;
 
       nativeBuildInputs = [ prefetch-yarn-deps ];
       GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
 
       buildPhase = ''
+        runHook preBuild
+
+        yarnLock=''${yarnLock:=$PWD/yarn.lock}
         mkdir -p $out
-        (cd $out; prefetch-yarn-deps --verbose --builder ${yarnLock})
+        (cd $out; prefetch-yarn-deps --verbose --builder $yarnLock)
+
+        runHook postBuild
       '';
 
       outputHashMode = "recursive";
-      inherit (hash_) outputHashAlgo outputHash;
-    };
+    } // hash_ // (removeAttrs args ["src" "name" "hash" "sha256"]));
 
   in lib.setFunctionArgs f (lib.functionArgs f) // {
     tests = callPackage ./tests {};