diff --git a/Cargo.lock b/Cargo.lock index e33d055..42dc05b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -127,7 +127,7 @@ dependencies = [ [[package]] name = "finding" -version = "0.1.3" +version = "0.2.0" dependencies = [ "argparse 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rust_util 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 6262770..c55f7fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "finding" -version = "0.1.3" +version = "0.2.0" authors = ["Hatter Jiang "] edition = "2018" description = "command line finding tool" diff --git a/src/main.rs b/src/main.rs index d3e311a..6430108 100644 --- a/src/main.rs +++ b/src/main.rs @@ -201,7 +201,16 @@ fn find_text_files(options: &Options, dir_path: &Path) { } return false; } + if options.skip_target_dir && p_str.ends_with("/target") { + if options.verbose { + clear_n_print_message(MessageType::INFO, &format!("Skip target dir: {}", p_str)); + } + return false; + } if options.skip_dot_dir && p_str.contains("/.") { + if options.verbose { + clear_n_print_message(MessageType::INFO, &format!("Skip dot(.) dir: {}", p_str)); + } return false; } if options.skip_link_dir && is_symlink(p) { diff --git a/src/opt.rs b/src/opt.rs index 417c900..50d7116 100644 --- a/src/opt.rs +++ b/src/opt.rs @@ -17,6 +17,7 @@ pub struct Options { pub scan_dot_git: bool, pub skip_dot_dir: bool, pub skip_link_dir: bool, + pub skip_target_dir: bool, pub filter_file_name: String, pub filter_line_content: String, pub verbose: bool, @@ -41,6 +42,7 @@ impl Options { scan_dot_git: false, skip_dot_dir: false, skip_link_dir: false, + skip_target_dir: false, filter_file_name: String::new(), filter_line_content: String::new(), verbose: false, @@ -63,6 +65,7 @@ impl Options { ap.refer(&mut self.scan_dot_git).add_option(&["--scan-dot-git"], StoreTrue, "Scan dot git"); ap.refer(&mut self.skip_dot_dir).add_option(&["--skip-dot-dir"], StoreTrue, "Skipt dot dir [Text Mode]"); ap.refer(&mut self.skip_link_dir).add_option(&["--skip-link-dir"], StoreTrue, "Skip link dir"); + ap.refer(&mut self.skip_target_dir).add_option(&["--skip-target-dir"], StoreTrue, "Skip target dir"); ap.refer(&mut self.filter_file_name).add_option(&["--filter-file-name"], Store, "Filter file name [Text Mode]"); ap.refer(&mut self.filter_line_content).add_option(&["--filter-line-content"], Store, "Filter line content [Text Mode]"); ap.refer(&mut self.version).add_option(&["-v", "--version"], StoreTrue, "Print version");