srx.astro.nix/nix/package.nix

69 lines
1.4 KiB
Nix

{inputs, ...}: let
inherit (inputs.nix-filter.lib) filter inDirectory matchExt;
in {
perSystem = {
config,
pkgs,
inputs',
...
}: {
packages.srx-digital = pkgs.mkYarnPackage rec {
name = "srx-digital";
src = filter {
root = ../.;
include = [
(inDirectory "public")
(inDirectory "src")
(matchExt "js")
(matchExt "cjs")
(matchExt "mjs")
(matchExt "json")
(matchExt "ts")
../package.json
../yarn.lock
];
};
CI = "true";
doDist = false;
packageJSON = ../package.json;
yarnLock = ../yarn.lock;
yarnFlags = [
"--offline"
"--production=true"
];
pkgConfig.sharp = {
nativeBuildInputs = with pkgs; [
pkg-config
python3
nodePackages.node-gyp
];
buildInputs = with pkgs; [
vips.dev
];
postInstall = ''
${pkgs.nodePackages.node-gyp}/bin/node-gyp --node-dir=${pkgs.nodePackages.nodejs}/include/node rebuild
'';
};
postConfigure = "export HOME=$(mktemp -d)";
buildPhase = ''
runHook preBuild
(
shopt -s dotglob
yarn --offline build
)
runHook postBuild
'';
installPhase = "mv -v deps/${name}/dist \${out}";
};
};
}