git.iko.soy/typeable/nixpkgs-stackage
on master help sign in
Add pure callStackage2nix
dfd6733Dmitry Bushev
lib.nix+38−12
@@ -1,28 +1,54 @@
1−{ stdenv, lib, cacert, glibcLocales, stackage2nixWrapper }:
1+{ stdenv, lib, cacert, glibcLocales, stackage2nix, stackage2nixWrapper }:
2
2
3rec {
3rec {
4
4
5− stackageSrc2nix = { name, src }:
5+ stackage2nixGeneric = { drv, pname, installPhase, name, src }:
6 stdenv.mkDerivation {
6 stdenv.mkDerivation {
7+
8+ inherit installPhase;
9+
7− name = "stackage2nixWrapper-${name}";
10+ name = "${pname}-${name}";
8
11
9 phases = ["installPhase"];
12 phases = ["installPhase"];
10− buildInputs = [ stackage2nixWrapper ];
13+ buildInputs = [ drv ];
11 preferLocalBuild = true;
14 preferLocalBuild = true;
12
15
13− installPhase = ''
14− export HOME="$TMP"
15− mkdir -p "$out"
16− cd $out
17− stackage2nix "${src}"
18− '';
19−
20 SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
16 SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
21 LANG = "en_US.UTF-8";
17 LANG = "en_US.UTF-8";
22 LOCALE_ARCHIVE = lib.optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
18 LOCALE_ARCHIVE = lib.optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
23
19
24 };
20 };
25
21
22+ stackage2nixWrapperSrc = { name, src }: stackage2nixGeneric {
23+ drv = stackage2nixWrapper;
24+ pname = "stackage2nixWrapper";
25+ installPhase = ''
26+ export HOME="$TMP"
27+ mkdir -p $out
28+ cd $out
29+ stackage2nix "${src}"
30+ '';
31+
32+ inherit name src;
33+ };
34+
35+ stackage2nixSrc = { name, src, stackage-lts, all-cabal-hashes, hackage-db }: stackage2nixGeneric {
36+ drv = stackage2nix;
37+ pname = "stackage2nix";
38+ installPhase = ''
39+ export HOME="$TMP"
40+ mkdir -p $out
41+ cd $out
42+ stackage2nix --all-cabal-hashes ${all-cabal-hashes} --lts-haskell ${stackage-lts} --hackage-db ${hackage-db}
43+ '';
44+
45+ inherit name src;
46+ };
47+
26− callStackage2nix = name: src: import (stackageSrc2nix { inherit name src; });
48+ callStackage2nixWrapper = name: src: import (stackage2nixWrapperSrc { inherit name src; });
49+
50+ callStackage2nix = name: src: stackage-lts: all-cabal-hashes: hackage-db: import stackage2nixSrc {
51+ inherit name src stackage-lts all-cabal-hashes hackage-db;
52+ };
27
53
28}
54}