#[cfg(not(unix))]
fn main() {
eprintln!("bom_spike is a mkbom/lsbom oracle — Unix hosts only");
}
#[cfg(unix)]
use embala_pkg::write_bom;
#[cfg(unix)]
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut args = std::env::args().skip(1);
let tree = args
.next()
.ok_or("usage: bom_spike <TREE> [OUTPUT] [UID] [GID]")?;
let output = args.next().unwrap_or_else(|| "spike.bom".to_string());
let uid = args.next().map(|v| v.parse()).transpose()?.unwrap_or(0);
let gid = args.next().map(|v| v.parse()).transpose()?.unwrap_or(0);
let bom = write_bom(std::path::Path::new(&tree), uid, gid)?;
std::fs::write(&output, bom)?;
println!("wrote {output} (owner {uid}:{gid})");
Ok(())
}