summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/make-package-set.nix
diff options
context:
space:
mode:
authorWill Fancher <elvishjerricco@gmail.com>2017-11-06 16:26:05 -0500
committerWill Fancher <elvishjerricco@gmail.com>2017-11-06 16:49:09 -0500
commita38a3e21291ca8e751959a3f797ed2729bed6029 (patch)
tree46f7afdd25c0de1723b0d38578c8ac033e1eba1b /pkgs/development/haskell-modules/make-package-set.nix
parent8caf9f13a66b7d7a9aa9a13d59a6e83fdc99f107 (diff)
downloadnixlib-a38a3e21291ca8e751959a3f797ed2729bed6029.tar
nixlib-a38a3e21291ca8e751959a3f797ed2729bed6029.tar.gz
nixlib-a38a3e21291ca8e751959a3f797ed2729bed6029.tar.bz2
nixlib-a38a3e21291ca8e751959a3f797ed2729bed6029.tar.lz
nixlib-a38a3e21291ca8e751959a3f797ed2729bed6029.tar.xz
nixlib-a38a3e21291ca8e751959a3f797ed2729bed6029.tar.zst
nixlib-a38a3e21291ca8e751959a3f797ed2729bed6029.zip
Extract files one at a time from all-cabal-hashes
Diffstat (limited to 'pkgs/development/haskell-modules/make-package-set.nix')
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix12
1 files changed, 9 insertions, 3 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index 37b32177f6ba..61043252155e 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -118,10 +118,16 @@ let
       '';
   };
 
-  hackage2nix = name: version: self.haskellSrc2nix {
+  all-cabal-hashes-component = name: version: pkgs.runCommand "all-cabal-hashes-component-${name}-${version}" {} ''
+    tar --wildcards -xzvf ${all-cabal-hashes} \*/${name}/${version}/${name}.{json,cabal}
+    mkdir -p $out
+    mv */${name}/${version}/${name}.{json,cabal} $out
+  '';
+
+  hackage2nix = name: version: let component = all-cabal-hashes-component name version; in self.haskellSrc2nix {
     name   = "${name}-${version}";
-    sha256 = ''$(sed -e 's/.*"SHA256":"//' -e 's/".*$//' "${all-cabal-hashes}/${name}/${version}/${name}.json")'';
-    src    = "${all-cabal-hashes}/${name}/${version}/${name}.cabal";
+    sha256 = ''$(sed -e 's/.*"SHA256":"//' -e 's/".*$//' "${component}/${name}.json")'';
+    src    = "${component}/${name}.cabal";
   };
 
 in package-set { inherit pkgs stdenv callPackage; } self // {