#[cfg(all(target_os = "linux", target_arch = "x86_64"))]
fn main() {
use std::path::PathBuf;
let args: Vec<String> = std::env::args().collect();
let agent =
PathBuf::from(args.get(1).expect(
"usage: kvm_initramfs <agent_bin> <busybox_bin> <out.cpio> <module.ko[.zst]>...",
));
let busybox = PathBuf::from(args.get(2).expect("busybox_bin"));
let out = PathBuf::from(args.get(3).expect("out.cpio"));
let modules: Vec<PathBuf> = args[4..].iter().map(PathBuf::from).collect();
supermachine::Image::build_kvm_initramfs(&agent, &busybox, &modules, &out)
.expect("build_kvm_initramfs");
let sz = std::fs::metadata(&out).map(|m| m.len()).unwrap_or(0);
eprintln!(
"=== wrote {} ({} bytes, {} modules) ===",
out.display(),
sz,
modules.len()
);
}
#[cfg(not(all(target_os = "linux", target_arch = "x86_64")))]
fn main() {
eprintln!("kvm_initramfs is Linux/x86_64 only");
}