diff --git a/lib/types.nix b/lib/types.nix index 6b51f9254a00..1085c36cab01 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -66,6 +66,11 @@ let fixupOptionType mergeOptionDecls ; + inherit (lib.fileset) + isFileset + unions + empty + ; inAttrPosSuffix = v: name: @@ -612,6 +617,15 @@ let }; }; + fileset = mkOptionType { + name = "fileset"; + description = "fileset"; + descriptionClass = "noun"; + check = isFileset; + merge = loc: defs: unions (map (x: x.value) defs); + emptyValue.value = empty; + }; + # A package is a top-level store path (/nix/store/hash-name). This includes: # - derivations # - more generally, attribute sets with an `outPath` or `__toString` attribute