blob: ca9f37ff5367337df36cae7ac57f215ccf3d20b3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
{ pkgs
, lib
, makeWrapper
, nodejs ? pkgs.nodejs_18
}:
let
fetchElmDeps = pkgs.callPackage ./lib/fetchElmDeps.nix { };
# Haskell packages that require ghc 9.6
hs96Pkgs = import ./packages/ghc9_6 { inherit pkgs lib makeWrapper nodejs fetchElmDeps; };
# Haskell packages that require ghc 8.10
hs810Pkgs = import ./packages/ghc8_10 { inherit pkgs lib; };
# Haskell packages that require ghc 9.2
hs92Pkgs = import ./packages/ghc9_2 { inherit pkgs lib; };
# Patched, originally npm-downloaded, packages
patchedNodePkgs = import ./packages/node { inherit pkgs lib nodejs makeWrapper; };
assembleScope = self: basics:
(hs96Pkgs self).elmPkgs // (hs92Pkgs self).elmPkgs // (hs810Pkgs self).elmPkgs // (patchedNodePkgs self) // basics;
in
lib.makeScope pkgs.newScope
(self: assembleScope self
(with self; {
inherit fetchElmDeps nodejs;
/* Node/NPM based dependencies can be upgraded using script `packages/generate-node-packages.sh`.
* Packages which rely on `bin-wrap` will fail by default
and can be patched using `patchBinwrap` function defined in `packages/lib.nix`.
* Packages which depend on npm installation of elm can be patched using
`patchNpmElm` function also defined in `packages/lib.nix`.
*/
elmLib =
let
hsElmPkgs = (hs810Pkgs self) // (hs96Pkgs self);
in
import ./lib {
inherit lib;
inherit (pkgs) writeScriptBin stdenv;
inherit (self) elm;
};
elm-json = callPackage ./packages/elm-json { };
elm-test-rs = callPackage ./packages/elm-test-rs { };
elm-test = callPackage ./packages/elm-test { };
lamdera = callPackage ./packages/lamdera { };
})
)
|