You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#![allow(dead_code)]
|
|
|
|
|
|
|
|
#[macro_use] extern crate log;
|
|
|
|
#[macro_use] extern crate lazy_static;
|
|
|
|
#[macro_use] extern crate lazy_format;
|
|
|
|
#[macro_use] extern crate cfg_if;
|
|
|
|
#[macro_use] extern crate ad_hoc_iter;
|
|
|
|
|
|
|
|
use color_eyre::{
|
|
|
|
eyre::{
|
|
|
|
eyre,
|
|
|
|
self,
|
|
|
|
|
|
|
|
WrapErr as _,
|
|
|
|
},
|
|
|
|
SectionExt as _,
|
|
|
|
};
|
|
|
|
|
|
|
|
mod ext;
|
|
|
|
use ext::*;
|
|
|
|
|
|
|
|
mod arg;
|
|
|
|
|
|
|
|
#[inline] fn init() -> Result<(), eyre::Report>
|
|
|
|
{
|
|
|
|
color_eyre::install()?;
|
|
|
|
pretty_env_logger::init();
|
|
|
|
|
|
|
|
trace!("installed panic handler & logger");
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
async fn real_main() -> Result<i32, eyre::Report>
|
|
|
|
{
|
|
|
|
init().wrap_err(eyre!("Failed to initialise logger / panic handler"))?;
|
|
|
|
|
|
|
|
arg::print_usage();
|
|
|
|
|
|
|
|
Ok(0)
|
|
|
|
}
|
|
|
|
|
|
|
|
#[tokio::main]
|
|
|
|
async fn main() -> Result<(), eyre::Report> {
|
|
|
|
Ok(match real_main().await? {
|
|
|
|
0 => trace!("Exiting with normal code 0"),
|
|
|
|
ex => {
|
|
|
|
warn!("Exiting with nonzero exit code: {}", ex);
|
|
|
|
std::process::exit(ex)
|
|
|
|
},
|
|
|
|
})
|
|
|
|
}
|