git.iko.soy/typeable/stackage2nix
on master help sign in
60 lines 1.8 kB history raw
1{ stdenv, cacert, git, curl, lndir, runCommand
2, _cacheVersion ? "0" }:
4rec {
5 hackage-db = stdenv.mkDerivation {
6 name = "hackage-db";
7 version = _cacheVersion;
8 phases = [ "installPhase" ];
9 buildInputs = [ curl ];
10 installPhase = ''
11 mkdir -p $out
12 pushd $out
13 curl -o 01-index.tar.gz https://hackage.haskell.org/01-index.tar.gz
14 gunzip --keep 01-index.tar.gz
15 popd
16 '';
17 SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
18 };
19 all-cabal-hashes = stdenv.mkDerivation rec {
20 name = "all-cabal-hashes";
21 version = _cacheVersion;
22 phases = [ "installPhase" ];
23 buildInputs = [ git ];
24 installPhase = ''
25 mkdir -p $out
26 git clone --bare --branch hackage https://github.com/commercialhaskell/all-cabal-hashes.git $out
27 '';
28 SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
29 };
30 stackage-lts = stdenv.mkDerivation {
31 name = "stackage-lts";
32 version = _cacheVersion;
33 phases = [ "installPhase" ];
34 buildInputs = [ git ];
35 installPhase = ''
36 mkdir -p $out
37 git clone --depth 1 https://github.com/fpco/lts-haskell.git $out
38 '';
39 SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
40 };
41 stackage-nightly = stdenv.mkDerivation {
42 name = "stackage-nightly";
43 version = _cacheVersion;
44 phases = [ "installPhase" ];
45 buildInputs = [ git ];
46 installPhase = ''
47 mkdir -p $out
48 git clone --depth 1 https://github.com/fpco/stackage-nightly.git $out
49 '';
50 SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
51 };
52 stackage-all = runCommand "stackage-all"
53 {nativeBuildInputs = [ stackage-nightly stackage-lts lndir ];}
54 ''
55 mkdir $out
56 for i in ${stackage-nightly} ${stackage-lts}; do
57 lndir -silent $i $out
58 done
59 '';