Skip to content

Commit

Permalink
Add some outline for HTML reports
Browse files Browse the repository at this point in the history
  • Loading branch information
Christopher Regali committed Jul 25, 2023
1 parent 08ece33 commit 649e178
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ pub fn compare_folders_cfg(
.collect();

let all_okay = results.iter().all(|result| *result);
report::create_json(&rule_results, report_path)?;
report::create_reports(&rule_results, &report_path)?;
Ok(all_okay)
}

Expand Down
41 changes: 29 additions & 12 deletions src/report/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -581,20 +581,33 @@ pub fn write_error_detail(
result
}

pub(crate) fn create_json(
pub(crate) fn create_reports(
rule_results: &[RuleDifferences],
report_path: impl AsRef<Path>,
) -> Result<(), Error> {
let _reporting_span = span!(tracing::Level::INFO, "JSON Reporting");
let _reporting_span = span!(tracing::Level::INFO, "Reporting");
let _reporting_span = _reporting_span.enter();
let report_dir = report_path.as_ref();
if report_dir.is_dir() {
info!("Delete report folder");
fat_io_wrap_std(&report_dir, &fs::remove_dir_all)?;
}

info!("create report folder");
fat_io_wrap_std(&report_dir, &fs::create_dir)?;

create_json(rule_results, &report_path)?;
create_html(rule_results, &report_path)?;

Ok(())
}

pub(crate) fn create_json(
rule_results: &[RuleDifferences],
report_path: impl AsRef<Path>,
) -> Result<(), Error> {
let _reporting_span = span!(tracing::Level::INFO, "JSON");
let _reporting_span = _reporting_span.enter();
let report_dir = report_path.as_ref();
let writer = report_dir.join("report.json");
let writer = fat_io_wrap_std(writer, &File::create)?;
serde_json::to_writer_pretty(writer, &rule_results)?;
Expand All @@ -605,23 +618,27 @@ pub(crate) fn create_html(
rule_results: &[RuleDifferences],
report_path: impl AsRef<Path>,
) -> Result<(), Error> {
let _reporting_span = span!(tracing::Level::INFO, "JSON Reporting");
let _reporting_span = span!(tracing::Level::INFO, "HTML");
let _reporting_span = _reporting_span.enter();
let report_dir = report_path.as_ref();
if report_dir.is_dir() {
info!("Delete report folder");
fat_io_wrap_std(&report_dir, &fs::remove_dir_all)?;
}

info!("create report folder");
fat_io_wrap_std(&report_dir, &fs::create_dir)?;

for rule_result in rule_results.iter() {
let sub_folder = report_dir.join(&rule_result.rule.name);
debug!("Create subfolder {:?}", &sub_folder);
fat_io_wrap_std(&sub_folder, &fs::create_dir)?;
for file in rule_result.diffs.iter() {
// for
let cmp_errors: Vec<&DiffDetail> = file
.detail
.iter()
.filter(|r| !matches!(r, DiffDetail::Error(_)))
.collect();
let diffs: Vec<&DiffDetail> = file
.detail
.iter()
.filter(|r| matches!(r, DiffDetail::Error(_)))
.collect();
// TODO: Write cmp_errors to report
// TODO: Write diffs to report
}
}

Expand Down

0 comments on commit 649e178

Please sign in to comment.