diff options
author | Andrew Gallant <jamslam@gmail.com> | 2023-11-19 17:23:36 -0500 |
---|---|---|
committer | Andrew Gallant <jamslam@gmail.com> | 2023-11-19 17:23:36 -0500 |
commit | eb52214905743c1f065045df3ccfc9438dd605a2 (patch) | |
tree | 8dfe407346147a293d7f94440250de0677037e39 | |
parent | 3a37bd12e266681403f66445371566550b5e5ea0 (diff) |
progressag/more-work
-rw-r--r-- | crates/core/flags/parse.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/crates/core/flags/parse.rs b/crates/core/flags/parse.rs index fb112637..8151110d 100644 --- a/crates/core/flags/parse.rs +++ b/crates/core/flags/parse.rs @@ -72,17 +72,12 @@ fn parse_low() -> ParseResult<LowArgs> { if let Err(err) = parser.parse(std::env::args_os().skip(1), &mut low) { return ParseResult::Err(err); } - crate::messages::set_messages(!low.no_messages); - crate::messages::set_ignore_messages(!low.no_ignore_messages); - match low.logging { - Some(LoggingMode::Trace) => { - log::set_max_level(log::LevelFilter::Trace) - } - Some(LoggingMode::Debug) => { - log::set_max_level(log::LevelFilter::Debug) - } - None => log::set_max_level(log::LevelFilter::Warn), - } + // Even though we haven't parsed the config file yet (assuming it exists), + // we can still use the arguments given on the CLI to setup ripgrep's + // logging preferences. Even if the config file changes them in some way, + // it's really the best we can do. This way, for example, folks can pass + // `--trace` and see any messages logged during config file parsing. + set_log_levels(&low); // Before we try to take configuration into account, we can bail early // if a special mode was enabled. This is basically only for version and // help output which shouldn't be impacted by extra configuration. @@ -113,6 +108,12 @@ fn parse_low() -> ParseResult<LowArgs> { return ParseResult::Err(err); } // Reset the message and logging levels, since they could have changed. + set_log_levels(&low); + ParseResult::Ok(low) +} + +/// Sets global state flags that control logging based on low-level arguments. +fn set_log_levels(low: &LowArgs) { crate::messages::set_messages(!low.no_messages); crate::messages::set_ignore_messages(!low.no_ignore_messages); match low.logging { @@ -124,7 +125,6 @@ fn parse_low() -> ParseResult<LowArgs> { } None => log::set_max_level(log::LevelFilter::Warn), } - ParseResult::Ok(low) } /// Parse the sequence of CLI arguments given a low level typed set of |