use crate::{Cli, commands::RunCommand};
#[derive(clap::Parser)]
pub struct Check {
input: String,
}
impl RunCommand<()> for Check {
fn run(&self, cli: &Cli) -> miette::Result<()> {
use microcad_driver::prelude as mu;
use mu::traits::*;
let mut document = mu::Document::open(&self.input)?;
match document.compile(cli.compile_parameters("0.1mm")?) {
Ok(_) => {
eprintln!("✅ File is valid: {}", self.input);
}
Err(err) => {
eprintln!("⚠️ File has issues:\n{err}");
cli.print_diagnostics(&document);
}
}
Ok(())
}
}