srx.astro.nix/nix/package.nix

65 lines
1.3 KiB
Nix
Raw Normal View History

{inputs, ...}: let
inherit (inputs.nix-filter.lib) filter inDirectory matchExt;
in {
perSystem = {
config,
pkgs,
inputs',
...
}: {
2024-03-03 13:45:20 +01:00
packages.srx-digital = pkgs.mkYarnPackage {
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
];
};
2024-03-03 13:45:20 +01:00
CI = "true";
doDist = false;
packageJSON = ../package.json;
yarnLock = ../yarn.lock;
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
'';
};
2024-03-03 13:45:20 +01:00
postConfigure = "export HOME=$(mktemp -d)";
buildPhase = ''
runHook preBuild
(
shopt -s dotglob
yarn --offline build
)
runHook postBuild
'';
installPhase = "mv -v deps/srx-digital/dist \${out}";
};
};
}