use clap::Parser;
use zlink_codegen::{CodegenOptions, Error};
mod cli;
use cli::Args;
fn main() -> Result<(), Error> {
let args = Args::parse();
let (files, output, multiple_files, rustfmt) = match args.command {
Some(cli::Command::Generate {
files,
output,
multiple_files,
rustfmt,
}) => (files, output, multiple_files, rustfmt),
None => (args.files, args.output, args.multiple_files, args.rustfmt),
};
if files.is_empty() {
eprintln!("Error: No input files specified");
eprintln!("Usage: zlink-codegen <FILES>... [OPTIONS]");
std::process::exit(1);
}
let config = CodegenOptions {
files,
output,
multiple_files,
rustfmt,
};
zlink_codegen::generate_files(&config)?;
Ok(())
}