summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2017-11-08 16:25:16 +0100
committerGitHub <noreply@github.com>2017-11-08 16:25:16 +0100
commitc7203efb7d9dcd6aa410863f16ce9b385fcd27f7 (patch)
treef42edf9906166ca0a6d7378bf437eaefb1c26403 /pkgs/development
parentbb0b0822ef39d987952a04ae61fb8071eca45454 (diff)
parenta38a3e21291ca8e751959a3f797ed2729bed6029 (diff)
downloadnixpkgs-c7203efb7d9dcd6aa410863f16ce9b385fcd27f7.tar
nixpkgs-c7203efb7d9dcd6aa410863f16ce9b385fcd27f7.tar.gz
nixpkgs-c7203efb7d9dcd6aa410863f16ce9b385fcd27f7.tar.bz2
nixpkgs-c7203efb7d9dcd6aa410863f16ce9b385fcd27f7.tar.lz
nixpkgs-c7203efb7d9dcd6aa410863f16ce9b385fcd27f7.tar.xz
nixpkgs-c7203efb7d9dcd6aa410863f16ce9b385fcd27f7.tar.zst
nixpkgs-c7203efb7d9dcd6aa410863f16ce9b385fcd27f7.zip
Merge pull request #31333 from ElvishJerricco/unextracted-all-cabal-hashes
Unextracted all cabal hashes
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix25
1 files changed, 9 insertions, 16 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index ebfe44dd25a..61043252155 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -118,23 +118,16 @@ let
       '';
   };
 
-  all-cabal-hashes-component = name: import (pkgs.runCommand "all-cabal-hashes-component-${name}.nix" {}
-    ''
-      set +o pipefail
-      for component in ${all-cabal-hashes}/*; do
-        if ls $component | grep -q "^${name}$"; then
-          echo "builtins.storePath $component" > $out
-          exit 0
-        fi
-      done
-      echo "${name} not found in any all-cabal-hashes component, are you sure it's in hackage?" >&2
-      exit 1
-    '');
-
-  hackage2nix = name: version: let component = all-cabal-hashes-component name; in 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/".*$//' "${component}/${name}/${version}/${name}.json")'';
-    src    = "${component}/${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 // {