pub use mdbook_lint_core::ignore::path_is_ignored;
use std::path::PathBuf;
pub fn filter_ignored_paths(files: &mut Vec<PathBuf>, patterns: &[String]) {
if patterns.is_empty() {
return;
}
files.retain(|path| !path_is_ignored(path, patterns));
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_filter_ignored_paths() {
let mut files = vec![
PathBuf::from("docs/keep.md"),
PathBuf::from("vendor/skip.md"),
PathBuf::from("drafts/wip.md"),
PathBuf::from("notes.backup.md"),
];
let patterns = vec![
"vendor/".to_string(),
"drafts/".to_string(),
"*.backup.md".to_string(),
];
filter_ignored_paths(&mut files, &patterns);
assert_eq!(files, vec![PathBuf::from("docs/keep.md")]);
}
}