tools/fs: change scan_subdir to use filter_file_name_regex

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Wolfgang Bumiller 2019-02-13 14:01:28 +01:00
parent 53e1e7ca72
commit 806d7a6a35

View File

@ -107,24 +107,8 @@ pub fn scan_subdir<'a, P: ?Sized + nix::NixPath>(
dirfd: RawFd, dirfd: RawFd,
path: &P, path: &P,
regex: &'a regex::Regex, regex: &'a regex::Regex,
) -> Result<impl Iterator<Item = Result<nix::dir::Entry, Error>> + 'a, Error> { ) -> Result<impl Iterator<Item = Result<ReadDirEntry, Error>> + 'a, Error> {
Ok(read_subdir(dirfd, path)?.filter_map(move |entry| { Ok(read_subdir(dirfd, path)?.filter_file_name_regex(regex))
match entry {
Ok(entry) => match entry.file_name().to_str() {
Ok(name) => {
if regex.is_match(name) {
Some(Ok(entry))
} else {
None // Skip values not matching the regex
}
}
// Skip values which aren't valid utf-8
Err(_) => None,
},
// Propagate errors through
Err(e) => Some(Err(Error::from(e))),
}
}))
} }
/// Helper trait to provide a combinators for directory entry iterators. /// Helper trait to provide a combinators for directory entry iterators.