srx.astro.nix/nix/package.nix
2024-05-07 17:20:50 +02:00

59 lines
1.3 KiB
Nix

{ inputs, ... }:
let inherit (inputs.nix-filter.lib) filter inDirectory matchExt;
in {
perSystem = { pkgs, ... }: {
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}";
};
};
}