at master 1.5 kB view raw
1{ 2 pkgs, 3 lib, 4 makeWrapper, 5 nodejs ? pkgs.nodejs_20, 6}: 7 8let 9 fetchElmDeps = pkgs.callPackage ./lib/fetchElmDeps.nix { }; 10 11 # Haskell packages that require ghc 9.8 12 hs98Pkgs = import ./packages/ghc9_8 { inherit pkgs lib; }; 13 14 # Haskell packages that require ghc 9.6 15 hs96Pkgs = import ./packages/ghc9_6 { 16 inherit 17 pkgs 18 lib 19 makeWrapper 20 nodejs 21 fetchElmDeps 22 ; 23 }; 24 25 # Patched, originally npm-downloaded, packages 26 patchedNodePkgs = import ./packages/node { 27 inherit 28 pkgs 29 lib 30 nodejs 31 makeWrapper 32 ; 33 }; 34 35 assembleScope = 36 self: basics: 37 (hs98Pkgs self).elmPkgs // (hs96Pkgs self).elmPkgs // (patchedNodePkgs self) // basics; 38in 39lib.makeScope pkgs.newScope ( 40 self: 41 assembleScope self ( 42 with self; 43 { 44 inherit fetchElmDeps nodejs; 45 46 /* 47 Node/NPM based dependencies can be upgraded using script `packages/generate-node-packages.sh`. 48 49 * Packages which depend on npm installation of elm can be patched using 50 `patchNpmElm` function defined in `packages/lib.nix`. 51 */ 52 elmLib = import ./lib { 53 inherit lib; 54 inherit (pkgs) writeScriptBin stdenv; 55 inherit (self) elm; 56 }; 57 58 elm-json = callPackage ./packages/elm-json { }; 59 60 elm-review = callPackage ./packages/elm-review { }; 61 62 elm-test-rs = callPackage ./packages/elm-test-rs { }; 63 64 elm-test = callPackage ./packages/elm-test { }; 65 66 lamdera = callPackage ./packages/lamdera { }; 67 } 68 ) 69)