Skip to content

Commit

Permalink
special handling for folder globs
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfv committed Mar 13, 2024
1 parent b3249a6 commit ce6b869
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/task/file_hashes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,11 @@ impl FileHashes {
// Construct the custom filter
let mut ignore_builder = OverrideBuilder::new(root);
for ignore_line in filters {
ignore_builder.add(ignore_line.as_ref())?;
if ignore_line.as_ref().ends_with('/') {
ignore_builder.add(&format!("{}**", ignore_line.as_ref()))?;
} else {
ignore_builder.add(ignore_line.as_ref())?;
}
}
let filter = ignore_builder.build()?;

Expand Down Expand Up @@ -166,9 +170,11 @@ mod test {

// Create a directory structure with a few files.
create_dir(target_dir.path().join("src")).unwrap();
create_dir(target_dir.path().join("src/bla")).unwrap();
write(target_dir.path().join("build.rs"), "fn main() {}").unwrap();
write(target_dir.path().join("src/main.rs"), "fn main() {}").unwrap();
write(target_dir.path().join("src/lib.rs"), "fn main() {}").unwrap();
write(target_dir.path().join("src/bla/lib.rs"), "fn main() {}").unwrap();
write(target_dir.path().join("Cargo.toml"), "[package]").unwrap();

// Compute the hashes of all files in the directory that match a certain set of includes.
Expand Down Expand Up @@ -204,7 +210,9 @@ mod test {
.await
.unwrap();

println!("{:#?}", hashes);
assert!(hashes.files.contains_key(Path::new("src/main.rs")));
assert!(hashes.files.contains_key(Path::new("src/lib.rs")));
assert!(hashes.files.contains_key(Path::new("src/bla/lib.rs")));
assert!(!hashes.files.contains_key(Path::new("Cargo.toml")));
}
}

0 comments on commit ce6b869

Please sign in to comment.