From e6005dd7c8ac0128d15485a4ad7f616a855366d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Soko=C5=82owski?= Date: Mon, 4 May 2020 21:41:00 +0200 Subject: [PATCH] nix: use yarn2nix from nixpkgs, stop copying modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakub SokoĊ‚owski --- nix/mobile/node-package.nix | 51 ++++++++----------------------------- 1 file changed, 10 insertions(+), 41 deletions(-) diff --git a/nix/mobile/node-package.nix b/nix/mobile/node-package.nix index 3969819940..bc933fdba8 100644 --- a/nix/mobile/node-package.nix +++ b/nix/mobile/node-package.nix @@ -1,46 +1,15 @@ -{ lib, fetchFromGitHub, pkgs, nodejs, yarn }: +{ lib, fetchFromGitHub +, nodejs, yarn2nix-moretea }: let - yarn2nix = import (fetchFromGitHub { - name = "yarn2nix-source"; - owner = "moretea"; - repo = "yarn2nix"; - rev = "3cc020e384ce2a439813adb7a0cc772a034d90bb"; - sha256 = "0h2kzdfiw43rbiiffpqq9lkhvdv8mgzz2w29pzrxgv8d39x67vr9"; - }) { inherit pkgs nodejs yarn; }; + version = lib.fileContents ../../VERSION; yarnLock = ../../mobile/js_files/yarn.lock; packageJSON = ../../mobile/js_files/package.json; packageJSONContent = lib.importJSON packageJSON; - - # Create a yarn package for our project that contains all the dependecies, so that we have a - # known good node_modules folder that we can use later on - projectNodePackage = yarn2nix.mkYarnModules rec { - name = "${pname}-${version}"; - pname = packageJSONContent.name; - version = packageJSONContent.version; - inherit packageJSON yarnLock; - # Replace symlink to deps with copy of real dependencies - postBuild = '' - # Fixup symlinks in folder we'll be moving. - # Basically transform a symlink pointing to ../../../../../../a into ../../../../a - symlinks=( $(find $out/deps/${pname}/node_modules/ -lname '../../../../../..*') ) - for sl in ''${symlinks[@]}; do - newTarget=$(readlink "$sl" | sed -E "s|(\.\./){2}(.*)|\2|") - ln -snf "$newTarget" "$sl" - done - unset sl - unset symlinks - - # Merge deps with node_modules - cp -R --no-clobber $out/deps/${pname}/node_modules/. $out/node_modules/ - # Get rid of deps - rm -rf $out/deps/ - # Get rid of symlink to deps - rm $out/node_modules/${pname} - - # Ensure the we copied expected dependencies from $out/deps - [ -d $out/node_modules/react-native-fs ] || exit 1 - ''; - }; - -in projectNodePackage +in + # Create a yarn package for our project that contains all the dependecies. + yarn2nix-moretea.mkYarnModules rec { + pname = "status-react"; + name = "${pname}-node-deps-${version}"; + inherit version packageJSON yarnLock; + }