summaryrefslogtreecommitdiff
path: root/cli/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/main.rs')
-rw-r--r--cli/main.rs13
1 files changed, 11 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);
}