diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-09-12 09:50:38 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2019-09-12 09:50:38 +0100 |
commit | d614f463dedc269bd766f74024745e4fb6ba7020 (patch) | |
tree | f34a9bc7eb5f8b12cbb4d74d13ef1b70b53c358b /crates/ra_cli/src/main.rs | |
parent | 7828f43303ea03810cd5cfe47297a8d95b6ceb51 (diff) | |
parent | a31933e4b58f3520a04b99ee60acbabf5695d91e (diff) |
Merge #1825
1825: add quiet mode to analysis-stats r=matklad a=matklad
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_cli/src/main.rs')
-rw-r--r-- | crates/ra_cli/src/main.rs | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/crates/ra_cli/src/main.rs b/crates/ra_cli/src/main.rs index 23bb83ff1..ca9275cd4 100644 --- a/crates/ra_cli/src/main.rs +++ b/crates/ra_cli/src/main.rs | |||
@@ -12,6 +12,22 @@ use ra_syntax::{AstNode, SourceFile}; | |||
12 | 12 | ||
13 | type Result<T> = std::result::Result<T, Box<dyn Error + Send + Sync>>; | 13 | type Result<T> = std::result::Result<T, Box<dyn Error + Send + Sync>>; |
14 | 14 | ||
15 | #[derive(Clone, Copy)] | ||
16 | pub enum Verbosity { | ||
17 | Verbose, | ||
18 | Normal, | ||
19 | Quiet, | ||
20 | } | ||
21 | |||
22 | impl Verbosity { | ||
23 | fn is_verbose(&self) -> bool { | ||
24 | match self { | ||
25 | Verbosity::Verbose => true, | ||
26 | _ => false, | ||
27 | } | ||
28 | } | ||
29 | } | ||
30 | |||
15 | fn main() -> Result<()> { | 31 | fn main() -> Result<()> { |
16 | Logger::with_env().start()?; | 32 | Logger::with_env().start()?; |
17 | 33 | ||
@@ -67,7 +83,15 @@ fn main() -> Result<()> { | |||
67 | eprintln!("{}", help::ANALYSIS_STATS_HELP); | 83 | eprintln!("{}", help::ANALYSIS_STATS_HELP); |
68 | return Ok(()); | 84 | return Ok(()); |
69 | } | 85 | } |
70 | let verbose = matches.contains(["-v", "--verbose"]); | 86 | let verbosity = match ( |
87 | matches.contains(["-v", "--verbose"]), | ||
88 | matches.contains(["-q", "--quiet"]), | ||
89 | ) { | ||
90 | (false, false) => Verbosity::Normal, | ||
91 | (false, true) => Verbosity::Quiet, | ||
92 | (true, false) => Verbosity::Verbose, | ||
93 | (true, true) => Err("Invalid flags: -q conflicts with -v")?, | ||
94 | }; | ||
71 | let memory_usage = matches.contains("--memory-usage"); | 95 | let memory_usage = matches.contains("--memory-usage"); |
72 | let only = matches.value_from_str(["-o", "--only"])?.map(|v: String| v.to_owned()); | 96 | let only = matches.value_from_str(["-o", "--only"])?.map(|v: String| v.to_owned()); |
73 | let path = { | 97 | let path = { |
@@ -79,7 +103,7 @@ fn main() -> Result<()> { | |||
79 | trailing.pop().unwrap() | 103 | trailing.pop().unwrap() |
80 | }; | 104 | }; |
81 | analysis_stats::run( | 105 | analysis_stats::run( |
82 | verbose, | 106 | verbosity, |
83 | memory_usage, | 107 | memory_usage, |
84 | path.as_ref(), | 108 | path.as_ref(), |
85 | only.as_ref().map(String::as_ref), | 109 | only.as_ref().map(String::as_ref), |