use gwk_cert::check::{check_stream, parse_stream};
fn main() {
let Some(path) = std::env::args().nth(1) else {
eprintln!("usage: gwk-cert <stream.json>");
std::process::exit(2);
};
let raw = match std::fs::read_to_string(&path) {
Ok(raw) => raw,
Err(err) => {
eprintln!("gwk-cert: cannot read {path}: {err}");
std::process::exit(2);
}
};
let (events, mut findings) = parse_stream(&raw);
findings.extend(check_stream(&events));
println!(
"{}",
serde_json::to_string_pretty(&findings).expect("findings serialize")
);
if findings.is_empty() {
eprintln!("gwk-cert: certified — {} events, 0 findings", events.len());
} else {
eprintln!(
"gwk-cert: NOT certified — {} events, {} finding(s)",
events.len(),
findings.len()
);
std::process::exit(1);
}
}