use std::process::ExitCode;
use crate::cli::CheckArgs;
use crate::engine::{build_report, fail, print_report, purge_run_logs, write_run_metadata};
const EXIT_OK: u8 = 0;
pub fn run(args: &CheckArgs) -> ExitCode {
let output = match build_report(args) {
Ok(output) => output,
Err(message) => return fail(&message),
};
if let Err(message) = print_report(&output.report, &output.adapter, args) {
return fail(&message);
}
write_run_metadata(&output, args);
purge_run_logs(args, output.log_retention_days);
ExitCode::from(EXIT_OK)
}