forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

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 <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;