Files
FlakeTest/client/default.nix
2021-08-05 12:04:54 +02:00

62 lines
1.4 KiB
Nix

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