@@ -1,28 +1,54 @@
1−{ stdenv, lib, cacert, glibcLocales, stackage2nixWrapper }:
1+{ stdenv, lib, cacert, glibcLocales, stackage2nix, stackage2nixWrapper }:
5− stackageSrc2nix = { name, src }:
5+ stackage2nixGeneric = { drv, pname, installPhase, name, src }:
6 stdenv.mkDerivation {
6 stdenv.mkDerivation {
7− name = "stackage2nixWrapper-${name}";
10+ name = "${pname}-${name}";
9 phases = ["installPhase"];
12 phases = ["installPhase"];
10− buildInputs = [ stackage2nixWrapper ];
13+ buildInputs = [ drv ];
11 preferLocalBuild = true;
14 preferLocalBuild = true;
17− stackage2nix "${src}"
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";
22+ stackage2nixWrapperSrc = { name, src }: stackage2nixGeneric {
23+ drv = stackage2nixWrapper;
24+ pname = "stackage2nixWrapper";
29+ stackage2nix "${src}"
35+ stackage2nixSrc = { name, src, stackage-lts, all-cabal-hashes, hackage-db }: stackage2nixGeneric {
37+ pname = "stackage2nix";
42+ stackage2nix --all-cabal-hashes ${all-cabal-hashes} --lts-haskell ${stackage-lts} --hackage-db ${hackage-db}
26− callStackage2nix = name: src: import (stackageSrc2nix { inherit name src; });
48+ callStackage2nixWrapper = name: src: import (stackage2nixWrapperSrc { inherit name src; });
50+ callStackage2nix = name: src: stackage-lts: all-cabal-hashes: hackage-db: import stackage2nixSrc {
51+ inherit name src stackage-lts all-cabal-hashes hackage-db;