use anyhow::Result;
use cordance_core::advise::Severity;
use cordance_core::pack::CordancePack;
pub fn run(pack: &CordancePack, json: bool) -> Result<()> {
let report = cordance_advise::run_all(pack)?;
if json {
let out = serde_json::to_string_pretty(&report)?;
println!("{out}");
} else if report.findings.is_empty() {
println!("cordance advise: no findings");
} else {
for f in &report.findings {
let level = match f.severity {
Severity::Error => "ERROR",
Severity::Warning => "WARN ",
Severity::Info => "INFO ",
};
println!("[{level}] {} — {}", f.id, f.summary);
println!(" Doctrine: {}", f.doctrine_anchor);
println!(" Remediation: {}", f.remediation);
}
}
Ok(())
}