{ pkgs, nix-filter }: with pkgs; with nix-filter.lib; 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 = (pkgs.callPackage ./yarn-project.nix { nodejs = pkgs.nodejs-14_x; } { src = filter { root = ./.; include = [ "package.json" "yarn.lock" ".yarnrc.yml" (inDirectory ".yarn") ]; }; }).overrideAttrs (old: { buildInputs = old.buildInputs ++ [ pkgs.vips pkgs.python3 pkgs.pkgconfig pkgs.inotify-tools pkgs.nodePackages.node-gyp ]; }); homepage = stdenv.mkDerivation { name = "Homepage"; src = filter { root = ./.; include = [ ".parcelrc" ".yarnrc.yml" "elm.json" "package.json" "yarn.lock" (inDirectory ".yarn") (inDirectory "src") ]; }; buildInputs = with elmPackages; [ elm elm-format elm2nix yarnPkgs yarn ]; 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 yarn parcel build --dist-dir $out src/index.html --no-source-maps --no-cache ''; }; homepage-dev = homepage // { installPhase = '' mkdir $out yarn parcel build --dist-dir $out src/index.html --no-cache --no-optimize ''; }; }