feat: new param: ignore-all-in-file

Add new cmd line param to ignore all files or directories listed in this
file
This commit is contained in:
andy.boot
2023-12-13 22:39:51 +00:00
parent e8c7990a17
commit cd53fc7494
11 changed files with 62 additions and 4 deletions
+20
View File
@@ -17,7 +17,9 @@ use display::InitialDisplayData;
use filter::AggregateData;
use progress::PIndicator;
use progress::ORDERING;
use regex::Error;
use std::collections::HashSet;
use std::fs::read_to_string;
use std::panic;
use std::process;
use sysinfo::{System, SystemExt};
@@ -142,6 +144,24 @@ fn main() {
None => vec![],
};
let ignore_from_file_result = match options.get_one::<String>("ignore_all_in_file") {
Some(val) => read_to_string(val)
.unwrap()
.lines()
.map(Regex::new)
.collect::<Vec<Result<Regex, Error>>>(),
None => vec![],
};
let ignore_from_file = ignore_from_file_result
.into_iter()
.filter_map(|x| x.ok())
.collect::<Vec<Regex>>();
let invert_filter_regexs = invert_filter_regexs
.into_iter()
.chain(ignore_from_file)
.collect::<Vec<Regex>>();
let by_filecount = options.get_flag("by_filecount");
let limit_filesystem = options.get_flag("limit_filesystem");
let follow_links = options.get_flag("dereference_links");