Merge pull request #268520 from tweag/fileset-minor-changes

`lib.fileset`: Minor changes

Changed files
+11 -6
lib
+1 -1
lib/fileset/default.nix
···
lib.fileset.fromSource: The source origin of the argument is of type ${typeOf path}, but it should be a path instead.''
else if ! pathExists path then
throw ''
-
lib.fileset.fromSource: The source origin (${toString path}) of the argument does not exist.''
+
lib.fileset.fromSource: The source origin (${toString path}) of the argument is a path that does not exist.''
else if isFiltered then
_fromSourceFilter path source.filter
else
+4 -4
lib/fileset/internal.nix
···
# Turn a fileset into a source filter function suitable for `builtins.path`
# Only directories recursively containing at least one files are recursed into
-
# Type: Path -> fileset -> (String -> String -> Bool)
+
# Type: fileset -> (String -> String -> Bool)
_toSourceFilter = fileset:
let
# Simplify the tree, necessary to make sure all empty directories are null
···
resultingTree =
_differenceTree
-
positive._internalBase
-
positive._internalTree
-
negativeTreeWithPositiveBase;
+
positive._internalBase
+
positive._internalTree
+
negativeTreeWithPositiveBase;
in
# If the first file set is empty, we can never have any files in the result
if positive._internalIsEmptyWithoutBase then
+6 -1
lib/fileset/tests.sh
···
## lib.fileset.fromSource
# Check error messages
-
expectFailure 'fromSource null' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.'
+
# String-like values are not supported
expectFailure 'fromSource (lib.cleanSource "")' 'lib.fileset.fromSource: The source origin of the argument is a string-like value \(""\), but it should be a path instead.
\s*Sources created from paths in strings cannot be turned into file sets, use `lib.sources` or derivations instead.'
+
# Wrong type
+
expectFailure 'fromSource null' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.'
expectFailure 'fromSource (lib.cleanSource null)' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.'
+
+
# fromSource on non-existent paths gives an error
+
expectFailure 'fromSource ./a' 'lib.fileset.fromSource: The source origin \('"$work"'/a\) of the argument is a path that does not exist.'
# fromSource on a path works and is the same as coercing that path
mkdir a