use cosh_sdk::find::compile_glob;
#[must_use]
pub fn globs_match_any(globs: &[String], paths: &[String]) -> bool {
globs.iter().any(|g| {
compile_glob(g, true).is_ok_and(|glob_set| paths.iter().any(|p| glob_set.is_match(p)))
})
}
#[must_use]
pub fn name_matches_glob(pattern: &str, name: &str) -> bool {
if pattern == name || pattern == "*" {
return true;
}
if pattern.contains('*') {
let re_pattern = format!("^{}$", pattern.replace('.', "\\.").replace('*', ".*"));
if let Ok(re) = regex::Regex::new(&re_pattern) {
return re.is_match(name);
}
}
false
}