{ pkgs }: with pkgs; let yarnFilter = p: t: builtins.any (x: baseNameOf p == x) [ "package.json" "yarn.lock" ]; yarnSrc = lib.cleanSourceWith { filter = yarnFilter; src = ./.; }; in rec { shell = buildEnv { name = "homepage-devshell"; paths = homepage.buildInputs; }; nodeHeaders = fetchzip { name = "node-v${pkgs.nodejs.version}-headers"; url = "https://nodejs.org/download/release/v${pkgs.nodejs.version}/node-v${pkgs.nodejs.version}-headers.tar.gz"; sha256 = "sha256-wnw/eK+hqawpLbqC+sA65EF7FBz/Q8zvSJfb70dVo4o="; }; yarnPkgs = yarn2nix-moretea.mkYarnPackage { src = yarnSrc; publishBinsFor = [ "parcel" ]; pkgConfig.lmdb-store = { buildInputs = [ nodePackages.node-gyp python3 pkgconfig ]; postInstall = '' node-gyp --nodedir=${nodeHeaders} rebuild ''; }; }; homepage = stdenv.mkDerivation { name = "Homepage"; src = ./.; buildInputs = with elmPackages; [ elm elm-format elm2nix yarnPkgs ]; patchPhase = '' ln -sf ${yarnPkgs}/libexec/*/node_modules . ''; configurePhase = elmPackages.fetchElmDeps { elmPackages = import ./elm-srcs.nix; registryDat = ./registry.dat; elmVersion = "0.19.1"; }; installPhase = '' mkdir $out parcel build --dist-dir $out index.html --no-source-maps --no-cache ''; }; }