62 lines
1.4 KiB
Nix
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
|
|
'';
|
|
};
|
|
}
|