//! Builder-Hilfe: geprüfte Metadaten für eine frisch gebaute Runtime schreiben.
fn main() -> anyhow::Result<()> {
    let mut args: Vec<_> = std::env::args().skip(1).collect();
    let inspect = args.first().is_some_and(|s| s == "--inspect");
    if inspect {
        args.remove(0);
    }
    anyhow::ensure!(
        args.len() == 2,
        "Aufruf: tb-template [--inspect] <Executable-Pfad> <Target-Triple>"
    );
    if inspect {
        let found = tb_export::native_target(&std::fs::read(&args[0])?)?;
        anyhow::ensure!(
            found == tb_export::Target::parse(&args[1])?,
            "Executable hat falsches Ziel"
        );
        println!("{}", found.triple());
        return Ok(());
    }
    tb_export::prepare_template(
        std::path::Path::new(&args[0]),
        tb_export::Target::parse(&args[1])?,
    )
}
