80 lines
1.8 KiB
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
|
|
'';
|
|
};
|
|
}
|