]>
Commit | Line | Data |
---|---|---|
a9d77a20 FM |
1 | let |
2 | haskellNixSrc = builtins.fetchTarball "https://github.com/input-output-hk/haskell.nix/archive/1c2c9cd47f267aacf5472477a9827b18cfe5252a.tar.gz"; | |
3 | haskellNix = import haskellNixSrc {}; | |
4 | pkgs = import haskellNix.sources.nixpkgs-unstable haskellNix.nixpkgsArgs; | |
5 | nixBundleLib = import ./release-bundle.nix { inherit pkgs; }; | |
6 | projectName = "edi-parser"; | |
7 | selfPackagesNames = map (v: "${projectName}-${v}") [ "core" "scaffolder" "specification" ]; | |
8 | project = pkgs.haskell-nix.project' { | |
9 | src = pkgs.haskell-nix.haskellLib.cleanGit { | |
10 | name = projectName; | |
11 | src = ./.; | |
12 | }; | |
13 | }; | |
14 | selfPackages = pkgs.lib.genAttrs selfPackagesNames (n: project.hsPkgs.${n}); | |
15 | extractComponent = type: pkgs.haskell-nix.haskellLib.collectComponents' type selfPackages; | |
16 | mapRecursive = action: pkgs.lib.mapAttrsRecursiveCond (as: !(as ? "type" && as.type == "derivation")) | |
17 | (n: v: if builtins.isBool v then v else action n v); | |
18 | ||
19 | extractDocumentation = mapRecursive (n: v: v.haddock.doc) (extractComponent "library"); | |
20 | toEnv = derivations: pkgs.buildEnv { | |
21 | name = "project-env"; | |
22 | ignoreCollisions = true; | |
23 | paths = pkgs.lib.collect pkgs.lib.isDerivation derivations; | |
24 | }; | |
25 | in selfPackages // project // rec { | |
26 | inherit selfPackagesNames; | |
27 | checks = pkgs.haskell-nix.haskellLib.collectChecks' selfPackages; | |
28 | exes = extractComponent "exes"; | |
29 | library = extractComponent "library"; | |
30 | documentation = extractDocumentation; | |
31 | foreignlibs = extractComponent "foreignlibs"; | |
32 | sublibs = extractComponent "sublibs"; | |
33 | benchmarks = extractComponent "benchmarks"; | |
34 | tests = extractComponent "tests"; | |
35 | project-env = toEnv exes; | |
36 | bundled-dist = nixBundleLib.bundled-dist exes; | |
37 | bundled-documentation = nixBundleLib.bundled-documentation documentation; | |
38 | bundled-exes = nixBundleLib.bundled-derivations exes; | |
39 | bundled-project-env = nixBundleLib.tarball exes; | |
40 | } |