60 lines
1.6 KiB
Nix
60 lines
1.6 KiB
Nix
{inputs, ...}: let
|
|
inherit (inputs.nix-filter.lib) filter inDirectory matchExt;
|
|
in {
|
|
perSystem = {
|
|
config,
|
|
pkgs,
|
|
inputs',
|
|
...
|
|
}: {
|
|
packages.srx_dev = let
|
|
nodeHeaders = builtins.fetchTarball {
|
|
name = "node-headers-${pkgs.nodejs.version}";
|
|
url = "https://nodejs.org/download/release/v${pkgs.nodejs.version}/node-v${pkgs.nodejs.version}-headers.tar.gz";
|
|
sha256 = "sha256:03v0598ajc2sg5ywsj94wzclry7g60jlsbpjvdk5r3fck7bm9j20";
|
|
};
|
|
in
|
|
pkgs.mkYarnPackage {
|
|
name = "srx_dev";
|
|
src = filter {
|
|
root = ./..;
|
|
include = [
|
|
(inDirectory "public")
|
|
(inDirectory "src")
|
|
(matchExt "js")
|
|
(matchExt "cjs")
|
|
(matchExt "mjs")
|
|
(matchExt "json")
|
|
(matchExt "ts")
|
|
../package.json
|
|
../yarn.lock
|
|
];
|
|
};
|
|
|
|
CI = "true";
|
|
packageJSON = ../package.json;
|
|
yarnLock = ../yarn.lock;
|
|
yarnNix = ../nix/yarn.nix;
|
|
|
|
pkgConfig = {
|
|
sharp = {
|
|
nativeBuildInputs = with pkgs; [
|
|
nodePackages.node-gyp
|
|
python3
|
|
pkg-config
|
|
];
|
|
buildInputs = with pkgs; [
|
|
vips.dev
|
|
];
|
|
postInstall = "node-gyp --node-dir=${nodeHeaders} rebuild";
|
|
};
|
|
};
|
|
|
|
postConfigure = "export HOME=$(mktemp -d)";
|
|
buildPhase = "yarn --offline build";
|
|
installPhase = "mv -v deps/srx.dev/dist \${out}";
|
|
distPhase = "true";
|
|
};
|
|
};
|
|
}
|