use clap::Parser;
use log::error;
use machine_check_hw::Cli;
use std::thread;
fn main() {
let args = Cli::parse();
let filter_level = match args.verbose {
0 => log::LevelFilter::Info,
1 => log::LevelFilter::Debug,
_ => log::LevelFilter::Trace,
};
env_logger::builder().filter_level(filter_level).init();
let orig_hook = std::panic::take_hook();
std::panic::set_hook(Box::new(move |panic_info| {
orig_hook(panic_info);
std::process::exit(1);
}));
let result = thread::Builder::new()
.stack_size(32 * 1024 * 1024)
.spawn(|| machine_check_hw::run(args))
.unwrap()
.join()
.unwrap();
if let Err(err) = result {
error!("Error: {:#}", err);
}
}