{ description = "trainsearch"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; outputs = inputs: let forAllSystems = function: inputs.nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ] (system: function (import inputs.nixpkgs { system = system; overlays = [ inputs.self.overlays.default ]; })); in { packages = forAllSystems (pkgs: { default = pkgs.oeffisearch; trainsearch = pkgs.oeffisearch; }); devShells = forAllSystems (pkgs: { default = pkgs.mkShell { buildInputs = with pkgs; [ nodePackages.pnpm nginx ]; shellHook = '' export NODE_OPTIONS=--openssl-legacy-provider sed "s?PWD?$(pwd)?g" < ./nginx.conf > /tmp/nginx-oeffisearch.conf pnpm install pnpm dev exit ''; }; }); overlays.default = final: prev: { oeffisearch = final.stdenv.mkDerivation (finalAttrs: { pname = "oeffisearch"; version = finalAttrs.env.GIT_VERSION; src = inputs.self; nativeBuildInputs = [ final.nodejs final.pnpm.configHook ]; pnpmDeps = final.pnpm.fetchDeps { inherit (finalAttrs) pname version src; hash = "sha256-nkop8iBvXmC9pHnwY0ylzHtw3mUIG95JYiQ5cKZtqUY="; }; env.GIT_VERSION = if (inputs.self.sourceInfo ? shortRev) then inputs.self.sourceInfo.shortRev else "dirty"; env.GIT_COMMIT = if (inputs.self.sourceInfo ? rev) then inputs.self.sourceInfo.rev else "dirty"; env.GIT_COMMITDATE = builtins.concatStringsSep "-" (builtins.match "(.{4})(.{2})(.{2}).*" inputs.self.lastModifiedDate); buildPhase = '' pnpm build ''; installPhase = '' cp -r dist $out ''; }); }; }; }