···
supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
+
nixpkgsFor = forAllSystems (system: nixpkgs.legacyPackages.${system});
inherit (gitignore.lib) gitignoreSource;
+
mkPackageSet = pkgs: let
goModHash = "sha256-SLi+nALwCd/Lzn3aljwPqCo2UaM9hl/4OAjcHQLt2Bk=";
+
sqlite-lib = pkgs.callPackage ./nix/pkgs/sqlite-lib.nix {
+
inherit sqlite-lib-src;
+
genjwks = pkgs.callPackage ./nix/pkgs/genjwks.nix {inherit goModHash gitignoreSource;};
+
lexgen = pkgs.callPackage ./nix/pkgs/lexgen.nix {inherit indigo;};
+
appview = pkgs.callPackage ./nix/pkgs/appview.nix {
+
inherit sqlite-lib htmx-src htmx-ws-src lucide-src inter-fonts-src ibm-plex-mono-src goModHash gitignoreSource;
+
spindle = pkgs.callPackage ./nix/pkgs/spindle.nix {inherit sqlite-lib goModHash gitignoreSource;};
+
knot-unwrapped = pkgs.callPackage ./nix/pkgs/knot-unwrapped.nix {inherit sqlite-lib goModHash gitignoreSource;};
+
knot = pkgs.callPackage ./nix/pkgs/knot.nix {inherit knot-unwrapped;};
+
inherit lexgen appview spindle knot-unwrapped knot sqlite-lib genjwks;
+
overlays.default = final: prev: mkPackageSet final;
packages = forAllSystems (system: let
pkgs = nixpkgsFor.${system};
+
packages = mkPackageSet pkgs;
+
staticPackages = mkPackageSet pkgs.pkgsStatic;
+
crossPackages = mkPackageSet pkgs.pkgsCross.gnu64.pkgsStatic;
+
appview = packages.appview;
+
lexgen = packages.lexgen;
+
knot-unwrapped = packages.knot-unwrapped;
+
spindle = packages.spindle;
+
genjwks = packages.genjwks;
+
sqlite-lib = packages.sqlite-lib;
+
pkgsStatic-appview = staticPackages.appview;
+
pkgsStatic-knot = staticPackages.knot;
+
pkgsStatic-knot-unwrapped = staticPackages.knot-unwrapped;
+
pkgsStatic-spindle = staticPackages.spindle;
+
pkgsStatic-sqlite-lib = staticPackages.sqlite-lib;
+
pkgsCross-gnu64-pkgsStatic-appview = crossPackages.appview;
+
pkgsCross-gnu64-pkgsStatic-knot = crossPackages.knot;
+
pkgsCross-gnu64-pkgsStatic-knot-unwrapped = crossPackages.knot-unwrapped;
+
pkgsCross-gnu64-pkgsStatic-spindle = crossPackages.spindle;
+
defaultPackage = forAllSystems (system: self.packages.${system}.appview);
+
formatter = forAllSystems (system: nixpkgsFor.${system}.alejandra);
devShells = forAllSystems (system: let
pkgs = nixpkgsFor.${system};
+
packages' = self.packages.${system};
staticShell = pkgs.mkShell.override {
stdenv = pkgs.pkgsStatic.stdenv;
···
mkdir -p appview/pages/static/{fonts,icons}
···
cp -f ${inter-fonts-src}/web/InterVariable*.woff2 appview/pages/static/fonts/
cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 appview/pages/static/fonts/
cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono-Regular.woff2 appview/pages/static/fonts/
+
export TANGLED_OAUTH_JWKS="$(${packages'.genjwks}/bin/genjwks)"