Files
FlakeTest/client/default.nix

80 lines
1.8 KiB
Nix

{ 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
'';
};
}