nix-filter
nix-filter copied to clipboard
Support exact filer matching
I'd like to be able to specify exact files such as
rec {
artifact_a = nix-filter {
root = ../../;
include = [
./relative/path/to/a.ext
./another/path/to/b.ext
];
};
artifact_b = nix-filter {
root = ../../;
include = [
artifact_a
./third/path/to/c.ext
];
};
}
And i'd expect the output for artifact_b to contain
relative/path/to/a.ext
,
another/path/to/b.ext
,
third/path/to/c.ext
,
keeping the directory heirarchy.
Why?
It would allow the user to composable build src lists. Artifact A needs files x
, y
, artifact B
needs A
+ file z
, whilst maintaining their relative paths. Unsure how to achieve file level granularity currently
I'm currently working on a file set combinator library for Nixpkgs which allows you to do essentially this!
let
commonFiles = lib.fileset.unions [
./relative/path/to/a.ext
./another/path/to/b.ext
];
in {
a = lib.fileset.toSource {
root = ../..;
fileset = commonFiles;
};
b = lib.fileset.toSource {
root = ../..;
fileset = lib.fileset.union
commonFiles
./third/path/to/c.ext;
};
}