about summary refs log tree commit diff
path: root/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
diff options
context:
space:
mode:
authorhacker1024 <hacker1024@users.sourceforge.net>2023-10-23 23:05:25 +1100
committerMaciej Krüger <mkg20001@gmail.com>2023-12-21 11:46:16 +0100
commitd8b20d93adc539114de5401514f4d937aaac34aa (patch)
treea2afbeaba2c9ad995d952ca2987dde241ade4f7f /pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
parent981831870d06f028245751b64fd5a3c012343ede (diff)
flutter: Remove FLUTTER_CACHE_DIR
Diffstat (limited to 'pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix')
-rw-r--r--pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix28
1 files changed, 18 insertions, 10 deletions
diff --git a/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix b/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
index 8c42c8a074a85..baa3e8e56e70d 100644
--- a/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
+++ b/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
@@ -1,5 +1,6 @@
 { lib
 , runCommand
+, xorg
 , cacert
 , unzip
 
@@ -19,17 +20,16 @@ let
     "fuchsia"
     "universal"
   ];
+
+  flutter' = flutter.override {
+    # Use a version of Flutter with just enough capabilities to download
+    # artifacts.
+    supportedTargetPlatforms = [ ];
+  };
 in
 runCommand "flutter-artifacts-${platform}"
 {
-  nativeBuildInputs = [
-    (flutter.override {
-      # Use a version of Flutter with just enough capabilities to download
-      # artifacts.
-      supportedTargetPlatforms = [ ];
-    })
-    unzip
-  ];
+  nativeBuildInputs = [ xorg.lndir flutter' unzip ];
 
   NIX_FLUTTER_TOOLS_VM_OPTIONS = "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt";
 
@@ -41,6 +41,14 @@ runCommand "flutter-artifacts-${platform}"
     inherit platform;
   };
 } ''
-  mkdir -p "$out"
-  HOME="$NIX_BUILD_TOP" FLUTTER_CACHE_DIR="$out" flutter precache -v '--${platform}' ${builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove platform platforms))}
+  export FLUTTER_ROOT="$NIX_BUILD_TOP"
+  lndir -silent '${flutter'}' "$FLUTTER_ROOT"
+  rm -rf "$FLUTTER_ROOT/bin/cache"
+  mkdir "$FLUTTER_ROOT/bin/cache"
+
+  HOME="$(mktemp -d)" flutter precache -v '--${platform}' ${builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove platform platforms))}
+  rm -r "$FLUTTER_ROOT/bin/cache/lockfile"
+  find "$FLUTTER_ROOT" -type l -lname '${flutter'}/*' -delete
+
+  cp -r bin/cache "$out"
 ''