srx.astro.nix/nix/package.nix

60 lines
1.6 KiB
Nix
Raw Normal View History

{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";
};
};
}