Skip to content

Commit

Permalink
output error messages in linter
Browse files Browse the repository at this point in the history
Currenty error messages are hidden in logs and hard to find. Let's clearly print them at the end instead, so it's clear what needs fixing

Change-Id: Ica875d7b8a1bfd02149f086767fbe6c6d0eb15e4
  • Loading branch information
jul-sh committed Jul 2, 2024
1 parent e0bab78 commit 77e99b9
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions linter/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,16 @@ struct LinterContext {
verbose: bool,
}

#[derive(Copy, Clone, Debug, Default)]
#[derive(Clone, Debug, Default)]
struct ResultCounts {
processed: usize,
failures: usize,
error_messages: Vec<String>,
}

impl std::ops::AddAssign<ResultCounts> for ResultCounts {
fn add_assign(&mut self, rhs: ResultCounts) {
self.processed += rhs.processed;
self.failures += rhs.failures;
self.error_messages.extend(rhs.error_messages);
}
}

Expand Down Expand Up @@ -84,8 +84,11 @@ fn main() {
let elapsed = end.duration_since(start);
println!("\n\nProcessed {} files in {:?}", counts.processed, elapsed);

if counts.failures > 0 {
println!("{}", format!("Files with issues: {}", counts.failures).red());
if !counts.error_messages.is_empty() {
println!("{}", format!("Files with issues: {}", counts.error_messages.len()).red());
for message in counts.error_messages {
println!("{}", message.red());
}
std::process::exit(1);
} else {
println!("{}", "No files with issues found".cyan());
Expand All @@ -112,12 +115,13 @@ impl LinterContext {
let linter = Linter::new(tool);
let outcomes = linter.lint_files(&self.walk_builder, self.mode);
let processed = outcomes.len();
let mut failures = 0;
let mut error_messages = Vec::new();
for outcome in outcomes {
match outcome.outcome {
Err(err) => {
let message = format!("TOOL FAILURE {err:?}").red();
println!("{}", message);
error_messages.push(format!("{}: {}", outcome.filename, message));
}
Ok(linter::Outcome::Success(message)) => {
if !message.is_empty() {
Expand All @@ -128,8 +132,8 @@ impl LinterContext {
}
}
Ok(linter::Outcome::Failure(message)) => {
failures += 1;
println!("{}\n{message}", outcome.filename.red())
println!("{}\n{message}", outcome.filename.red());
error_messages.push(format!("{}: {}", outcome.filename, message));
}
};
}
Expand All @@ -141,6 +145,6 @@ impl LinterContext {
processed,
elapsed
);
ResultCounts { processed, failures }
ResultCounts { processed, error_messages }
}
}

0 comments on commit 77e99b9

Please sign in to comment.