diff --git a/swap/src/bin/swap.rs b/swap/src/bin/swap.rs index 87ba6845..28f91ba4 100644 --- a/swap/src/bin/swap.rs +++ b/swap/src/bin/swap.rs @@ -20,6 +20,8 @@ use std::future::Future; use std::path::PathBuf; use std::sync::Arc; use std::time::Duration; +use structopt::clap; +use structopt::clap::ErrorKind; use swap::bitcoin::TxLock; use swap::cli::command::{parse_args_and_apply_defaults, Arguments, Command}; use swap::database::Database; @@ -44,7 +46,23 @@ async fn main() -> Result<()> { data_dir, debug, cmd, - } = parse_args_and_apply_defaults(env::args_os())?; + } = match parse_args_and_apply_defaults(env::args_os()) { + Ok(args) => args, + Err(e) => { + if let Some(clap_err) = e.downcast_ref::() { + match clap_err.kind { + ErrorKind::HelpDisplayed | ErrorKind::VersionDisplayed => { + println!("{}", clap_err.message); + std::process::exit(0); + } + _ => { + bail!(e); + } + } + } + bail!(e); + } + }; match cmd { Command::BuyXmr {