nix: use filesets instead of gitignore.nix #418

merged
opened by winter.bsky.social targeting master from winter.bsky.social/core: push-myvluuuqnzmt

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 winter@winter.cafe

-21
flake.lock
···
"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",
···
},
"root": {
"inputs": {
-
"gitignore": "gitignore",
"gomod2nix": "gomod2nix",
"htmx-src": "htmx-src",
"htmx-ws-src": "htmx-ws-src",
+7 -6
flake.nix
···
url = "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip";
flake = false;
};
-
gitignore = {
-
url = "github:hercules-ci/gitignore.nix";
-
inputs.nixpkgs.follows = "nixpkgs";
-
};
};
outputs = {
···
htmx-src,
htmx-ws-src,
lucide-src,
-
gitignore,
inter-fonts-src,
sqlite-lib-src,
ibm-plex-mono-src,
···
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;
+2 -3
nix/pkgs/appview.nix
···
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
+2 -3
nix/pkgs/genjwks.nix
···
{
-
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;
+2 -3
nix/pkgs/knot-unwrapped.nix
···
buildGoApplication,
modules,
sqlite-lib,
-
gitignoreSource,
+
src,
}:
buildGoApplication {
pname = "knot";
version = "0.1.0";
-
src = gitignoreSource ../..;
-
inherit modules;
+
inherit src modules;
doCheck = false;
+2 -3
nix/pkgs/spindle.nix
···
buildGoApplication,
modules,
sqlite-lib,
-
gitignoreSource,
+
src,
}:
buildGoApplication {
pname = "spindle";
version = "0.1.0";
-
src = gitignoreSource ../..;
-
inherit modules;
+
inherit src modules;
doCheck = false;