1use {
6 anyhow::Result,
7 std::path::{Path, PathBuf},
8};
9
10pub fn evaluate_glob<P>(cwd: P, pattern: &str) -> Result<Vec<PathBuf>>
12where
13 P: AsRef<Path>,
14{
15 let pattern_path = PathBuf::from(pattern);
16
17 let search = if pattern.starts_with('/') || pattern_path.is_absolute() {
18 pattern.to_string()
19 } else {
20 format!("{}/{}", cwd.as_ref().display(), pattern)
21 };
22
23 let mut res = Vec::new();
24
25 for path in glob::glob(&search)? {
26 let path = path?;
27
28 if path.is_file() {
29 res.push(path);
30 }
31 }
32
33 Ok(res)
34}