mod bindgen;
mod pathgen;
mod structgen;
mod util;
use std::path::PathBuf;
use clap::Parser;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about=None)]
struct Args {
#[arg(short, long, default_value = "output")]
output: PathBuf,
input: Option<String>,
#[arg(short, long, action = clap::ArgAction::SetTrue)]
workaround: bool,
#[arg(long, default_value = "Patched")]
patch_prefix: String,
}
fn main() {
let args: Args = Args::parse();
println!(
"{} \n(c) The Nazara Project. (github.com/The-Nazara-Project)\n
Licensed under the terms of the GPL-v3.0-License.\n\
Check github.com/The-Nazara-Project/Thanix/LICENSE for more info.\n",
include_str!("templates/ascii_art.template")
);
match args.input {
Some(file) => bindgen::generate(file, args.output, args.workaround, &args.patch_prefix),
None => println!("Error: You need to provide a YAML schema to generate from."),
}
}