build svfe-pages with nix, a flake whose svfe-pages runs pages.mjs on nixpkgs' node
123456789101112131415161718192021222324252627{ "nodes": { "nixpkgs": { "locked": { "lastModified": 1781216227, "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", "owner": "nixos", "repo": "nixpkgs", "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", "type": "github" }, "original": { "owner": "nixos", "ref": "nixos-26.05", "repo": "nixpkgs", "type": "github" } }, "root": { "inputs": { "nixpkgs": "nixpkgs" } } }, "root": "root", "version": 7}123456789101112131415{ inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
outputs = { self, nixpkgs, }: let forAllSystems = nixpkgs.lib.genAttrs ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; in { packages = forAllSystems (system: { svfe-pages = nixpkgs.legacyPackages.${system}.callPackage ./package.nix {}; default = self.packages.${system}.svfe-pages; }); };}1234567891011121314151617181920212223242526272829303132333435363738{ lib, stdenvNoCC, nodejs, makeWrapper,}:stdenvNoCC.mkDerivation { pname = "svfe-pages"; version = "0-unstable"; src = lib.fileset.toSource { root = ./.; fileset = lib.fileset.fileFilter (file: file.hasExt "mjs") ./.; };
nativeBuildInputs = [makeWrapper]; nativeCheckInputs = [nodejs];
doCheck = true; checkPhase = '' runHook preCheck node --test runHook postCheck '';
installPhase = '' runHook preInstall mkdir -p $out/lib/svfe-pages cp *.mjs $out/lib/svfe-pages/ rm $out/lib/svfe-pages/*.test.mjs makeWrapper ${lib.getExe nodejs} $out/bin/svfe-pages --add-flags $out/lib/svfe-pages/pages.mjs runHook postInstall '';
meta = { description = "renders svfe's repo pages for a knot-static generation"; mainProgram = "svfe-pages"; };}