use std::path::PathBuf;
use chk_defaced::ocr::{OcrHint, TesseractOcr};
use chk_defaced::specimen;
fn main() -> anyhow::Result<()> {
let tessdata = std::env::var("TESSDATA_DIR").ok().map(PathBuf::from);
let lang = std::env::var("OCR_LANG").unwrap_or_else(|_| "ita+eng".to_string());
let ocr = TesseractOcr::new(tessdata, &lang, OcrHint::SingleLine)?;
for arg in std::env::args().skip(1) {
let p = PathBuf::from(&arg);
let name = p.file_name().map(|n| n.to_string_lossy().into_owned()).unwrap_or_default();
println!("\n=== {name} ===");
match specimen::specimen_scan_path(&p, &ocr) {
Ok(findings) if findings.is_empty() => {
println!(" glyphs draw what they claim (specimen OCR coherent)")
}
Ok(findings) => {
for f in &findings {
println!(" [{:?}] {} — {}", f.severity, f.rule, f.message);
}
}
Err(e) => println!(" error: {e:#}"),
}
}
Ok(())
}