summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gallant <jamslam@gmail.com>2023-11-19 17:23:36 -0500
committerAndrew Gallant <jamslam@gmail.com>2023-11-19 17:23:36 -0500
commiteb52214905743c1f065045df3ccfc9438dd605a2 (patch)
tree8dfe407346147a293d7f94440250de0677037e39
parent3a37bd12e266681403f66445371566550b5e5ea0 (diff)
progressag/more-work
-rw-r--r--crates/core/flags/parse.rs24
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