diff --git a/Cargo.lock b/Cargo.lock index 773641d..f9b4930 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,9 +2,9 @@ # It is not intended for manual editing. [[package]] name = "ahash" -version = "0.5.8" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb6ec8807cd25b59e6b8100815afc73f54e294f1a425a2e555971969889a8f8" +checksum = "ad4243ec6feddc812c0f442d9765374d250aba94e10ecf8b632e1b1c118547e8" dependencies = [ "getrandom 0.2.0", "lazy_static", @@ -113,6 +113,12 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "clap" version = "2.33.3" @@ -171,6 +177,12 @@ dependencies = [ "unicase", ] +[[package]] +name = "const_fn" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c478836e029dcef17fb47c89023448c64f781a046e0300e257ad8225ae59afab" + [[package]] name = "content_inspector" version = "0.2.4" @@ -182,12 +194,13 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +checksum = "ec91540d98355f690a86367e566ecad2e9e579f230230eb7c21398372be73ea5" dependencies = [ "autocfg", - "cfg-if", + "cfg-if 1.0.0", + "const_fn", "lazy_static", ] @@ -234,7 +247,7 @@ dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", "strsim 0.9.3", - "syn 1.0.48", + "syn 1.0.50", ] [[package]] @@ -245,7 +258,7 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", "quote 1.0.7", - "syn 1.0.48", + "syn 1.0.50", ] [[package]] @@ -270,7 +283,7 @@ checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.48", + "syn 1.0.50", ] [[package]] @@ -282,7 +295,7 @@ dependencies = [ "darling", "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.48", + "syn 1.0.50", ] [[package]] @@ -332,7 +345,7 @@ checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.48", + "syn 1.0.50", ] [[package]] @@ -350,9 +363,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54532e3223c5af90a6a757c90b5c5521564b07e5e7a958681bcd2afad421cdcd" +checksum = "f26ecb66b4bdca6c1409b40fb255eefc2bd4f6d135dab3c3124f80ffa2a9661e" dependencies = [ "atty", "humantime 2.0.1", @@ -388,7 +401,7 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "wasi", ] @@ -399,7 +412,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "wasi", ] @@ -468,9 +481,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "ignore" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22dcbf2a4a289528dbef21686354904e1c694ac642610a9bff9e7df730d9ec72" +checksum = "b287fb45c60bb826a0dc68ff08742b9d88a2fea13d6e0c286b3172065aaf878c" dependencies = [ "crossbeam-utils", "globset", @@ -513,7 +526,7 @@ checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616" dependencies = [ "arrayvec", "bitflags", - "cfg-if", + "cfg-if 0.1.10", "ryu", "static_assertions", ] @@ -530,7 +543,7 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", ] [[package]] @@ -590,9 +603,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.4.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" +checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" [[package]] name = "phf" @@ -670,9 +683,9 @@ dependencies = [ [[package]] name = "proc-exit" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac573c94c4d539e8c339d612c8fc9835d286989411f1381a84a304c0ac19b41" +checksum = "7d01cbcf1855582aa030b9682a639d007834cd24d20d65f031bf87a2c7762cb5" [[package]] name = "proc-macro-error" @@ -683,7 +696,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.48", + "syn 1.0.50", "version_check", ] @@ -895,7 +908,7 @@ checksum = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.48", + "syn 1.0.50", ] [[package]] @@ -954,7 +967,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.48", + "syn 1.0.50", ] [[package]] @@ -970,9 +983,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.48" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac" +checksum = "443b4178719c5a851e1bde36ce12da21d74a0e60b4d982ec3385a933c812f0f6" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", @@ -991,7 +1004,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "rand", "redox_syscall", @@ -1001,9 +1014,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" dependencies = [ "winapi-util", ] @@ -1034,7 +1047,7 @@ checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.48", + "syn 1.0.50", ] [[package]] @@ -1091,7 +1104,7 @@ dependencies = [ "clap", "clap-verbosity-flag", "difflib", - "env_logger 0.8.1", + "env_logger 0.8.2", "ignore", "log", "phf", @@ -1180,9 +1193,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" +checksum = "db8716a166f290ff49dabc18b44aa407cb7c6dbe1aa0971b44b8a24b0ca35aae" [[package]] name = "unicode-width" diff --git a/Cargo.toml b/Cargo.toml index 377a4bd..be3067e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,9 +46,9 @@ toml = "0.5" log = "0.4" env_logger = "0.8" bstr = "0.2" -ahash = "0.5.8" +ahash = "0.5.7" difflib = "0.4" -proc-exit = "0.1" +proc-exit = "0.3" [dev-dependencies] assert_fs = "1.0" diff --git a/src/checks.rs b/src/checks.rs index ff2a221..35d51c6 100644 --- a/src/checks.rs +++ b/src/checks.rs @@ -4,7 +4,7 @@ pub(crate) fn check_path( parser: &typos::tokens::Parser, dictionary: &dyn typos::Dictionary, reporter: &dyn typos::report::Report, -) -> Result<(), anyhow::Error> { +) -> Result<(), ignore::Error> { for entry in walk { check_entry(entry, checks, parser, dictionary, reporter)?; } @@ -17,8 +17,8 @@ pub(crate) fn check_path_parallel( parser: &typos::tokens::Parser, dictionary: &dyn typos::Dictionary, reporter: &dyn typos::report::Report, -) -> Result<(), anyhow::Error> { - let error: std::sync::Mutex> = std::sync::Mutex::new(Ok(())); +) -> Result<(), ignore::Error> { + let error: std::sync::Mutex> = std::sync::Mutex::new(Ok(())); walk.run(|| { Box::new(|entry: Result| { match check_entry(entry, checks, parser, dictionary, reporter) { @@ -40,7 +40,7 @@ fn check_entry( parser: &typos::tokens::Parser, dictionary: &dyn typos::Dictionary, reporter: &dyn typos::report::Report, -) -> Result<(), anyhow::Error> { +) -> Result<(), ignore::Error> { let entry = entry?; if entry.file_type().map(|t| t.is_file()).unwrap_or(true) { let explicit = entry.depth() == 0; diff --git a/src/main.rs b/src/main.rs index 96429dd..11a616d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,14 +13,14 @@ mod dict; mod diff; mod replace; -use proc_exit::ProcessExitResultExt; use proc_exit::WithCodeResultExt; fn main() { - run().process_exit(); + let result = run(); + proc_exit::exit(result); } -fn run() -> Result<(), proc_exit::Exit> { +fn run() -> proc_exit::ExitResult { // clap's `get_matches` uses Failure rather than Usage, so bypass it for `get_matches_safe`. let args = match args::Args::from_args_safe() { Ok(args) => args, @@ -29,7 +29,7 @@ fn run() -> Result<(), proc_exit::Exit> { } Err(e) => { writeln!(std::io::stdout(), "{}", e)?; - return Ok(()); + return proc_exit::Code::SUCCESS.ok(); } }; @@ -130,7 +130,6 @@ fn run() -> Result<(), proc_exit::Exit> { &dictionary, reporter, ) - .with_code(proc_exit::Code::FAILURE)?; } else { checks::check_path_parallel( walk.build_parallel(), @@ -139,8 +138,13 @@ fn run() -> Result<(), proc_exit::Exit> { &dictionary, reporter, ) - .with_code(proc_exit::Code::FAILURE)?; } + .map_err(|e| { + e.io_error() + .map(|i| proc_exit::Code::from(i.kind())) + .unwrap_or_default() + .with_message(e) + })?; if status_reporter.typos_found() { typos_found = true; }