git.iko.soy/typeable/nixpkgs-stackage
on master help sign in
67 lines 1.8 kB history raw
1{ stdenv, lib, cacert, glibcLocales, stackage2nix, stackage2nixWrapper }:
3rec {
5 stackage2nixGeneric = { drv, pname, installPhase, name, src }:
6 stdenv.mkDerivation {
8 name = "${pname}-${name}";
10 phases = [ "installPhase" ];
11 buildInputs = [ drv ];
12 preferLocalBuild = true;
14 SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
15 LANG = "en_US.UTF-8";
16 LOCALE_ARCHIVE = lib.optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
18 inherit installPhase;
19 };
21 stackage2nixWrapperSrc = { name, src }: stackage2nixGeneric {
22 drv = stackage2nixWrapper;
23 pname = "stackage2nixWrapper";
24 installPhase = ''
25 export HOME="$TMP"
26 mkdir -p $out
27 cd $out
28 stackage2nix "${src}"
29 '';
31 inherit name src;
32 };
34 stackage2nixSrc = { name, src }: stackage2nixGeneric {
35 drv = stackage2nix;
36 pname = "stackage2nix";
37 installPhase = ''
38 export HOME="$TMP"
39 mkdir -p $out
40 cd $out
41 stackage2nix "${src}"
42 '';
44 inherit name src;
45 };
47 stackage2nixSrcArgs = { name, src, stackage-lts, all-cabal-hashes, hackage-db }: stackage2nixGeneric {
48 drv = stackage2nix;
49 pname = "stackage2nixArgs";
50 installPhase = ''
51 export HOME="$TMP"
52 mkdir -p $out
53 cd $out
54 stackage2nix --all-cabal-hashes ${all-cabal-hashes} --lts-haskell ${stackage-lts} --hackage-db ${hackage-db}
55 '';
57 inherit name src;
58 };
60 callStackage2nix = name: src: import (stackage2nixSrc { inherit name src; });
62 callStackage2nixWrapper = name: src: import (stackage2nixWrapperSrc { inherit name src; });
64 callStackage2nixArgs = name: src: stackage-lts: all-cabal-hashes: hackage-db:
65 import (stackage2nixSrcArgs { inherit name src stackage-lts all-cabal-hashes hackage-db; });