From 3c8332c6ac085a92f9372e930c7dfdbe514365ce Mon Sep 17 00:00:00 2001 From: Winter Date: Thu, 7 Aug 2025 16:25:18 -0400 Subject: [PATCH] nix: use filesets instead of gitignore.nix This allows us to easily do things like ignoring Nix source files within our source tree (also done in this commit), which prevents unnecessary rebuilds. Signed-off-by: Winter --- flake.lock | 21 --------------------- flake.nix | 13 +++++++------ nix/pkgs/appview.nix | 5 ++--- nix/pkgs/genjwks.nix | 5 ++--- nix/pkgs/knot-unwrapped.nix | 5 ++--- nix/pkgs/spindle.nix | 5 ++--- 6 files changed, 15 insertions(+), 39 deletions(-) diff --git a/flake.lock b/flake.lock index db4dc57a..e7ed83e3 100644 --- a/flake.lock +++ b/flake.lock @@ -18,26 +18,6 @@ "type": "github" } }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "gomod2nix": { "inputs": { "flake-utils": "flake-utils", @@ -156,7 +136,6 @@ }, "root": { "inputs": { - "gitignore": "gitignore", "gomod2nix": "gomod2nix", "htmx-src": "htmx-src", "htmx-ws-src": "htmx-ws-src", diff --git a/flake.nix b/flake.nix index d797e371..41522b51 100644 --- a/flake.nix +++ b/flake.nix @@ -37,10 +37,6 @@ url = "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip"; flake = false; }; - gitignore = { - url = "github:hercules-ci/gitignore.nix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = { @@ -51,7 +47,6 @@ htmx-src, htmx-ws-src, lucide-src, - gitignore, inter-fonts-src, sqlite-lib-src, ibm-plex-mono-src, @@ -62,7 +57,13 @@ mkPackageSet = pkgs: pkgs.lib.makeScope pkgs.newScope (self: { - inherit (gitignore.lib) gitignoreSource; + src = let + fs = pkgs.lib.fileset; + in + fs.toSource { + root = ./.; + fileset = fs.difference (fs.intersection (fs.gitTracked ./.) (fs.fileFilter (file: !(file.hasExt "nix")) ./.)) (fs.maybeMissing ./.jj); + }; buildGoApplication = (self.callPackage "${gomod2nix}/builder" { gomod2nix = gomod2nix.legacyPackages.${pkgs.system}.gomod2nix; diff --git a/nix/pkgs/appview.nix b/nix/pkgs/appview.nix index 2b409e9b..2d438c5f 100644 --- a/nix/pkgs/appview.nix +++ b/nix/pkgs/appview.nix @@ -8,13 +8,12 @@ ibm-plex-mono-src, tailwindcss, sqlite-lib, - gitignoreSource, + src, }: buildGoApplication { pname = "appview"; version = "0.1.0"; - src = gitignoreSource ../..; - inherit modules; + inherit src modules; postUnpack = '' pushd source diff --git a/nix/pkgs/genjwks.nix b/nix/pkgs/genjwks.nix index af41ee35..4b84a18f 100644 --- a/nix/pkgs/genjwks.nix +++ b/nix/pkgs/genjwks.nix @@ -1,13 +1,12 @@ { - gitignoreSource, + src, buildGoApplication, modules, }: buildGoApplication { pname = "genjwks"; version = "0.1.0"; - src = gitignoreSource ../..; - inherit modules; + inherit src modules; subPackages = ["cmd/genjwks"]; doCheck = false; CGO_ENABLED = 0; diff --git a/nix/pkgs/knot-unwrapped.nix b/nix/pkgs/knot-unwrapped.nix index 3df5df57..21b31f4f 100644 --- a/nix/pkgs/knot-unwrapped.nix +++ b/nix/pkgs/knot-unwrapped.nix @@ -2,13 +2,12 @@ buildGoApplication, modules, sqlite-lib, - gitignoreSource, + src, }: buildGoApplication { pname = "knot"; version = "0.1.0"; - src = gitignoreSource ../..; - inherit modules; + inherit src modules; doCheck = false; diff --git a/nix/pkgs/spindle.nix b/nix/pkgs/spindle.nix index 7f2cd0ba..6a9ffb1f 100644 --- a/nix/pkgs/spindle.nix +++ b/nix/pkgs/spindle.nix @@ -2,13 +2,12 @@ buildGoApplication, modules, sqlite-lib, - gitignoreSource, + src, }: buildGoApplication { pname = "spindle"; version = "0.1.0"; - src = gitignoreSource ../..; - inherit modules; + inherit src modules; doCheck = false; -- 2.51.2