···
+
supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
+
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
+
nixpkgsFor = forAllSystems (system:
+
overlays = [self.overlays.default];
+
inherit (gitignore.lib) gitignoreSource;
+
overlays.default = final: prev: {
+
indigo-lexgen = with final;
+
pname = "indigo-lexgen";
+
subPackages = ["cmd/lexgen"];
+
vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs=";
+
final.pkgsStatic.buildGoModule {
+
src = gitignoreSource ./.;
+
cp -f ${htmx-src} appview/pages/static/htmx.min.js
+
cp -f ${lucide-src} appview/pages/static/lucide.min.js
+
${pkgs.tailwindcss}/bin/tailwindcss -i input.css -o appview/pages/static/tw.css
+
subPackages = ["cmd/appview"];
+
vendorHash = "sha256-u9LwvapAwyVOIOAag0IRrk+ot6B0PaqyEnt0EeJciGQ=";
+
stdenv = pkgsStatic.stdenv;
+
knotserver = with final;
+
final.pkgsStatic.buildGoModule {
+
src = gitignoreSource ./.;
+
subPackages = ["cmd/knotserver"];
+
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
+
repoguard = with final;
+
final.pkgsStatic.buildGoModule {
+
src = gitignoreSource ./.;
+
subPackages = ["cmd/repoguard"];
+
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
+
final.pkgsStatic.buildGoModule {
+
src = gitignoreSource ./.;
+
subPackages = ["cmd/keyfetch"];
+
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
+
packages = forAllSystems (system: {
+
inherit (nixpkgsFor."${system}") indigo-lexgen appview knotserver repoguard keyfetch;
+
defaultPackage = forAllSystems (system: nixpkgsFor.${system}.appview);
+
formatter = forAllSystems (system: nixpkgsFor."${system}".alejandra);
+
devShells = forAllSystems (system: let
+
pkgs = nixpkgsFor.${system};
+
staticShell = pkgs.mkShell.override {
+
stdenv = pkgs.pkgsStatic.stdenv;
+
default = staticShell {
+
apps = forAllSystems (system: let
+
pkgs = nixpkgsFor."${system}";
+
pkgs.writeShellScriptBin "run"
+
${pkgs.air}/bin/air -c /dev/null \
+
-build.cmd "${pkgs.tailwindcss}/bin/tailwindcss -i input.css -o ./appview/pages/static/tw.css && ${pkgs.go}/bin/go build -o ./out/${name}.out ./cmd/${name}/main.go" \
+
-build.bin "./out/${name}.out" \
+
-build.include_ext "go,html,css"
+
program = ''${air-watcher "appview"}/bin/run'';
+
program = ''${air-watcher "knotserver"}/bin/run'';