summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCanop <cano.petrole@gmail.com>2022-01-23 17:32:51 +0100
committerCanop <cano.petrole@gmail.com>2022-01-23 17:32:51 +0100
commit4cfb2d0e8568cb4594211f33a7fd5019fc36d88b (patch)
treea8f872074e74b1abbcfae66df31443528a964378 /src
parent375a29fe7526e7ab7a9aa4288772a4dca79a8c82 (diff)
clearer error on bad default_flags in conf file
Fix #483
Diffstat (limited to 'src')
-rw-r--r--src/tree/tree_options.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/tree/tree_options.rs b/src/tree/tree_options.rs
index f745d69..97d9c9c 100644
--- a/src/tree/tree_options.rs
+++ b/src/tree/tree_options.rs
@@ -8,6 +8,7 @@ use {
pattern::*,
},
clap::ArgMatches,
+ crossterm::style::Stylize,
std::convert::TryFrom,
};
@@ -81,7 +82,18 @@ impl TreeOptions {
if let Some(default_flags) = &config.default_flags {
let clap_app = clap_args::clap_app().setting(clap::AppSettings::NoBinaryName);
let flags_args = format!("-{}", default_flags);
- let conf_matches = clap_app.get_matches_from(vec![&flags_args]);
+ let conf_matches = match clap_app.get_matches_from_safe(vec![&flags_args]) {
+ Ok(cm) => cm,
+ Err(e) => {
+ error!("bad default_flags in conf: {:?}", default_flags);
+ eprintln!(
+ "{} Invalid default_flags in configuration file: \"{}\"",
+ "error:".red(),
+ default_flags.to_string().red(),
+ );
+ e.exit();
+ }
+ };
self.apply_launch_args(&conf_matches);
}
if let Some(b) = &config.show_selection_mark {