From 43618954766a2ba525541501422bb6e7d5ccc913 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Sat, 9 Jan 2021 13:08:03 +0100 Subject: fix: don't error on version and help flag (#9064) --- cli/main.rs | 13 +++++++++++-- cli/tests/integration_tests.rs | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/cli/main.rs b/cli/main.rs index a3b8f3a6d..c9644073b 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -1261,8 +1261,17 @@ pub fn main() { std::process::exit(1); } - let flags = - unwrap_or_exit(flags::flags_from_vec(args).map_err(AnyError::from)); + let flags = match flags::flags_from_vec(args) { + Ok(flags) => flags, + Err(err @ clap::Error { .. }) + if err.kind == clap::ErrorKind::HelpDisplayed + || err.kind == clap::ErrorKind::VersionDisplayed => + { + err.write_to(&mut std::io::stdout()).unwrap(); + std::process::exit(0); + } + Err(err) => unwrap_or_exit(Err(AnyError::from(err))), + }; if !flags.v8_flags.is_empty() { init_v8_flags(&*flags.v8_flags); } diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs index 20e391171..df55b5e7c 100644 --- a/cli/tests/integration_tests.rs +++ b/cli/tests/integration_tests.rs @@ -63,6 +63,42 @@ fn std_lint() { assert!(status.success()); } +#[test] +fn help_flag() { + let status = util::deno_cmd() + .current_dir(util::root_path()) + .arg("--help") + .spawn() + .unwrap() + .wait() + .unwrap(); + assert!(status.success()); +} + +#[test] +fn version_short_flag() { + let status = util::deno_cmd() + .current_dir(util::root_path()) + .arg("-V") + .spawn() + .unwrap() + .wait() + .unwrap(); + assert!(status.success()); +} + +#[test] +fn version_long_flag() { + let status = util::deno_cmd() + .current_dir(util::root_path()) + .arg("--version") + .spawn() + .unwrap() + .wait() + .unwrap(); + assert!(status.success()); +} + #[test] fn unit_test_lint() { let status = util::deno_cmd() -- cgit v1.2.3