fix: diff hidden but non-ignored files when walking directories

pull/692/head
Alexis (Poliorcetics) Bourget 2024-03-01 22:22:25 +07:00 committed by Wilfred Hughes
parent 1f79d16606
commit 573d607051
2 changed files with 9 additions and 6 deletions

@ -7,7 +7,7 @@ use std::{
path::{Path, PathBuf},
};
use ignore::Walk;
use ignore::WalkBuilder;
use rustc_hash::FxHashSet;
use crate::exit_codes::EXIT_BAD_ARGUMENTS;
@ -228,7 +228,9 @@ pub(crate) fn guess_content(bytes: &[u8]) -> ProbableFileKind {
/// All the files in `dir`, including subdirectories.
fn relative_file_paths_in_dir(dir: &Path) -> Vec<PathBuf> {
Walk::new(dir)
WalkBuilder::new(dir)
.hidden(false)
.build()
.filter_map(Result::ok)
.map(|entry| Path::new(entry.path()).to_owned())
.filter(|path| !path.is_dir())

@ -253,9 +253,10 @@ fn walk_hidden_items() {
cmd.args(["sample_files/hidden-before", "sample_files/hidden-after"]);
let predicate_fn = predicate::str::contains(".hidden/doc.txt")
.and(predicate::str::contains(".hidden.txt"))
.and(predicate::str::contains("before"))
.and(predicate::str::contains("after"));
let predicate_fn =
predicate::str::contains(format!(".hidden{}doc.txt", std::path::MAIN_SEPARATOR))
.and(predicate::str::contains(".hidden.txt"))
.and(predicate::str::contains("before"))
.and(predicate::str::contains("after"));
cmd.assert().stdout(predicate_fn);
}