forked from tangled.org/core
this repo has no description

flake.nix: refactor to not use a new nixpkgs instance to save time on eval

authored by ptr.pet and committed by Tangled 0a4a028a 46f2e31f

Changed files
+41 -50
+41 -50
flake.nix
··· 53 53 }: let 54 54 supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"]; 55 55 forAllSystems = nixpkgs.lib.genAttrs supportedSystems; 56 - nixpkgsFor = forAllSystems (system: 57 - import nixpkgs { 58 - inherit system; 59 - overlays = [self.overlays.default]; 60 - }); 56 + nixpkgsFor = forAllSystems (system: nixpkgs.legacyPackages.${system}); 61 57 inherit (gitignore.lib) gitignoreSource; 62 - in { 63 - overlays.default = final: prev: let 58 + mkPackageSet = pkgs: let 64 59 goModHash = "sha256-SLi+nALwCd/Lzn3aljwPqCo2UaM9hl/4OAjcHQLt2Bk="; 65 - appviewDeps = { 66 - inherit htmx-src htmx-ws-src lucide-src inter-fonts-src ibm-plex-mono-src goModHash gitignoreSource; 60 + sqlite-lib = pkgs.callPackage ./nix/pkgs/sqlite-lib.nix { 61 + inherit (pkgs) gcc; 62 + inherit sqlite-lib-src; 67 63 }; 68 - knotDeps = { 69 - inherit goModHash gitignoreSource; 70 - }; 71 - spindleDeps = { 72 - inherit goModHash gitignoreSource; 73 - }; 74 - mkPackageSet = pkgs: { 75 - lexgen = pkgs.callPackage ./nix/pkgs/lexgen.nix {inherit indigo;}; 76 - appview = pkgs.callPackage ./nix/pkgs/appview.nix appviewDeps; 77 - knot = pkgs.callPackage ./nix/pkgs/knot.nix {}; 78 - spindle = pkgs.callPackage ./nix/pkgs/spindle.nix spindleDeps; 79 - knot-unwrapped = pkgs.callPackage ./nix/pkgs/knot-unwrapped.nix knotDeps; 80 - sqlite-lib = pkgs.callPackage ./nix/pkgs/sqlite-lib.nix { 81 - inherit (pkgs) gcc; 82 - inherit sqlite-lib-src; 83 - }; 84 - genjwks = pkgs.callPackage ./nix/pkgs/genjwks.nix {inherit goModHash gitignoreSource;}; 64 + genjwks = pkgs.callPackage ./nix/pkgs/genjwks.nix {inherit goModHash gitignoreSource;}; 65 + lexgen = pkgs.callPackage ./nix/pkgs/lexgen.nix {inherit indigo;}; 66 + appview = pkgs.callPackage ./nix/pkgs/appview.nix { 67 + inherit sqlite-lib htmx-src htmx-ws-src lucide-src inter-fonts-src ibm-plex-mono-src goModHash gitignoreSource; 85 68 }; 86 - in 87 - mkPackageSet final; 69 + spindle = pkgs.callPackage ./nix/pkgs/spindle.nix {inherit sqlite-lib goModHash gitignoreSource;}; 70 + knot-unwrapped = pkgs.callPackage ./nix/pkgs/knot-unwrapped.nix {inherit sqlite-lib goModHash gitignoreSource;}; 71 + knot = pkgs.callPackage ./nix/pkgs/knot.nix {inherit knot-unwrapped;}; 72 + in { 73 + inherit lexgen appview spindle knot-unwrapped knot sqlite-lib genjwks; 74 + }; 75 + in { 76 + overlays.default = final: prev: mkPackageSet final; 88 77 89 78 packages = forAllSystems (system: let 90 79 pkgs = nixpkgsFor.${system}; 91 - staticPkgs = pkgs.pkgsStatic; 92 - crossPkgs = pkgs.pkgsCross.gnu64.pkgsStatic; 80 + packages = mkPackageSet pkgs; 81 + staticPackages = mkPackageSet pkgs.pkgsStatic; 82 + crossPackages = mkPackageSet pkgs.pkgsCross.gnu64.pkgsStatic; 93 83 in { 94 - appview = pkgs.appview; 95 - lexgen = pkgs.lexgen; 96 - knot = pkgs.knot; 97 - knot-unwrapped = pkgs.knot-unwrapped; 98 - spindle = pkgs.spindle; 99 - genjwks = pkgs.genjwks; 100 - sqlite-lib = pkgs.sqlite-lib; 84 + appview = packages.appview; 85 + lexgen = packages.lexgen; 86 + knot = packages.knot; 87 + knot-unwrapped = packages.knot-unwrapped; 88 + spindle = packages.spindle; 89 + genjwks = packages.genjwks; 90 + sqlite-lib = packages.sqlite-lib; 101 91 102 - pkgsStatic-appview = staticPkgs.appview; 103 - pkgsStatic-knot = staticPkgs.knot; 104 - pkgsStatic-knot-unwrapped = staticPkgs.knot-unwrapped; 105 - pkgsStatic-spindle = staticPkgs.spindle; 106 - pkgsStatic-sqlite-lib = staticPkgs.sqlite-lib; 92 + pkgsStatic-appview = staticPackages.appview; 93 + pkgsStatic-knot = staticPackages.knot; 94 + pkgsStatic-knot-unwrapped = staticPackages.knot-unwrapped; 95 + pkgsStatic-spindle = staticPackages.spindle; 96 + pkgsStatic-sqlite-lib = staticPackages.sqlite-lib; 107 97 108 - pkgsCross-gnu64-pkgsStatic-appview = crossPkgs.appview; 109 - pkgsCross-gnu64-pkgsStatic-knot = crossPkgs.knot; 110 - pkgsCross-gnu64-pkgsStatic-knot-unwrapped = crossPkgs.knot-unwrapped; 111 - pkgsCross-gnu64-pkgsStatic-spindle = crossPkgs.spindle; 98 + pkgsCross-gnu64-pkgsStatic-appview = crossPackages.appview; 99 + pkgsCross-gnu64-pkgsStatic-knot = crossPackages.knot; 100 + pkgsCross-gnu64-pkgsStatic-knot-unwrapped = crossPackages.knot-unwrapped; 101 + pkgsCross-gnu64-pkgsStatic-spindle = crossPackages.spindle; 112 102 }); 113 - defaultPackage = forAllSystems (system: nixpkgsFor.${system}.appview); 114 - formatter = forAllSystems (system: nixpkgsFor."${system}".alejandra); 103 + defaultPackage = forAllSystems (system: self.packages.${system}.appview); 104 + formatter = forAllSystems (system: nixpkgsFor.${system}.alejandra); 115 105 devShells = forAllSystems (system: let 116 106 pkgs = nixpkgsFor.${system}; 107 + packages' = self.packages.${system}; 117 108 staticShell = pkgs.mkShell.override { 118 109 stdenv = pkgs.pkgsStatic.stdenv; 119 110 }; ··· 124 115 pkgs.air 125 116 pkgs.gopls 126 117 pkgs.httpie 127 - pkgs.lexgen 128 118 pkgs.litecli 129 119 pkgs.websocat 130 120 pkgs.tailwindcss 131 121 pkgs.nixos-shell 132 122 pkgs.redis 123 + packages'.lexgen 133 124 ]; 134 125 shellHook = '' 135 126 mkdir -p appview/pages/static/{fonts,icons} ··· 139 130 cp -f ${inter-fonts-src}/web/InterVariable*.woff2 appview/pages/static/fonts/ 140 131 cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 appview/pages/static/fonts/ 141 132 cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono-Regular.woff2 appview/pages/static/fonts/ 142 - export TANGLED_OAUTH_JWKS="$(${pkgs.genjwks}/bin/genjwks)" 133 + export TANGLED_OAUTH_JWKS="$(${packages'.genjwks}/bin/genjwks)" 143 134 ''; 144 135 env.CGO_ENABLED = 1; 145 136 };