diff --git a/README.md b/README.md index 765d8ae..4f497ce 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,19 @@ pkgs.mkNginxServer { } ``` +### [`gitSource`](./lib/git-source) + +for development package nix files, computes the source set of files tracked by git at the given root +path + +example: +```nix +stdenv.mkDerivation { + # ... + src = gitSource { root = ./.; }; +} +``` + ## development structure of this repo diff --git a/default.nix b/default.nix index dbb718a..8a63b62 100644 --- a/default.nix +++ b/default.nix @@ -9,6 +9,8 @@ (final: prev: { fetchFromSteam = prev.callPackage ./lib/fetchsteam {}; + gitSource = prev.callPackage ./lib/git-source {}; + ghidra_headless = prev.ghidra.override { openjdk17 = prev.openjdk17_headless; }; diff --git a/lib/git-source/default.nix b/lib/git-source/default.nix new file mode 100644 index 0000000..9ed4f6f --- /dev/null +++ b/lib/git-source/default.nix @@ -0,0 +1,8 @@ +{ lib }: { root }: +let + fs = lib.fileset; + sourceFiles = fs.difference + (fs.gitTracked root) + (fs.fileFilter (file: file.hasExt "nix") root); +in + fs.toSource { inherit root; fileset = sourceFiles; }