feat: ignore .git folder in build_walker()

This commit is contained in:
Talison Fabio 2025-04-16 22:47:25 -03:00
parent 21e7fdf3d6
commit 104bb511ba

View File

@ -1,4 +1,4 @@
use std::path::Path;
use std::{ffi::OsStr, path::Path};
/// Determines which files should be read or ignored during directory walking
pub struct FileVisibilityPolicy {
@ -69,11 +69,19 @@ impl FileVisibilityPolicy {
/// Walks through a directory using [`ignore::Walk`]
pub fn build_walker(&self, path: impl AsRef<Path>) -> ignore::Walk {
ignore::WalkBuilder::new(path)
let mut builder = ignore::WalkBuilder::new(path);
builder
.git_exclude(self.read_git_exclude)
.git_ignore(self.read_git_ignore)
.ignore(self.read_ignore)
.hidden(self.read_hidden)
.build()
.hidden(self.read_hidden);
if self.read_git_ignore {
builder.filter_entry(|p| p.path().file_name() != Some(OsStr::new(".git")));
}
builder.build()
}
}