Fix ignore rules
This commit is contained in:
parent
6b72672d29
commit
5137ac0640
@ -52,7 +52,11 @@ pub enum YamaScanCommand {
|
|||||||
|
|
||||||
/// Show dust-style usage graph of the current directory, excluding excluded files.
|
/// Show dust-style usage graph of the current directory, excluding excluded files.
|
||||||
#[command(alias = "du")]
|
#[command(alias = "du")]
|
||||||
Usage {},
|
Usage {
|
||||||
|
/// Specify an ignore rule. Can use multiple times.
|
||||||
|
#[arg(short = 'I', long = "ignore")]
|
||||||
|
ignore: Vec<String>,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
@ -66,7 +70,7 @@ async fn main() -> eyre::Result<()> {
|
|||||||
.init();
|
.init();
|
||||||
|
|
||||||
match YamaScanCommand::parse() {
|
match YamaScanCommand::parse() {
|
||||||
YamaScanCommand::Usage {} => {
|
YamaScanCommand::Usage { ignore } => {
|
||||||
let idd = InitialDisplayData {
|
let idd = InitialDisplayData {
|
||||||
short_paths: true,
|
short_paths: true,
|
||||||
is_reversed: false,
|
is_reversed: false,
|
||||||
@ -76,7 +80,7 @@ async fn main() -> eyre::Result<()> {
|
|||||||
iso: false,
|
iso: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
let scan = scan::scan(Path::new("."), &Vec::new()).context("Couldn't scan")?;
|
let scan = scan::scan(Path::new("."), &ignore).context("Couldn't scan")?;
|
||||||
let top_nodes = assemble_display_tree_from_scan_entries(scan)?.children;
|
let top_nodes = assemble_display_tree_from_scan_entries(scan)?.children;
|
||||||
|
|
||||||
let root_display_node = dust_style_filetree_display::filter::get_biggest(
|
let root_display_node = dust_style_filetree_display::filter::get_biggest(
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use eyre::{bail, eyre, Context, ContextCompat};
|
use eyre::{bail, eyre, Context, ContextCompat};
|
||||||
|
use ignore::overrides::OverrideBuilder;
|
||||||
use ignore::WalkBuilder;
|
use ignore::WalkBuilder;
|
||||||
use patricia_tree::PatriciaMap;
|
use patricia_tree::PatriciaMap;
|
||||||
use std::cmp::max;
|
use std::cmp::max;
|
||||||
@ -117,9 +118,17 @@ pub fn scan(root: &Path, ignores: &Vec<String>) -> eyre::Result<PatriciaMap<Scan
|
|||||||
.follow_links(false)
|
.follow_links(false)
|
||||||
.same_file_system(true);
|
.same_file_system(true);
|
||||||
|
|
||||||
|
let mut overrides = OverrideBuilder::new(root);
|
||||||
for ign in ignores {
|
for ign in ignores {
|
||||||
walker.add_ignore(ign);
|
overrides
|
||||||
|
.add(&("!".to_owned() + ign))
|
||||||
|
.with_context(|| format!("failed to add ignore rule: {ign:?}"))?;
|
||||||
}
|
}
|
||||||
|
walker.overrides(
|
||||||
|
overrides
|
||||||
|
.build()
|
||||||
|
.context("failed to create overrides with ignore entries")?,
|
||||||
|
);
|
||||||
let walker = walker.build();
|
let walker = walker.build();
|
||||||
|
|
||||||
for entry in walker {
|
for entry in walker {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user