use crate::{Cli, commands::RunCommand};
#[derive(clap::Parser)]
pub struct Doc {
input: String,
#[arg(short = 'g', long = "generator")]
generator: Option<String>,
#[arg(short = 'o', long)]
output: Option<std::path::PathBuf>,
}
impl RunCommand<()> for Doc {
fn run(&self, cli: &Cli) -> miette::Result<()> {
use microcad_driver::prelude as mu;
use mu::traits::*;
let mut document = mu::Document::open(&self.input)?;
let params = mu::DocGenParameters {
generator_id: self.generator.clone(),
output_path: self.output.clone(),
resolve_parameters: mu::ResolveParameters::default(),
};
match document.doc_gen(params) {
Ok(_) => {}
Err(err) => {
eprintln!("Error generating documentation:\n{err}");
cli.print_diagnostics(&document);
}
}
Ok(())
}
}