#[macro_use]
extern crate clap;
mod cli;
use exitfailure::ExitFailure;
use human_panic::setup_panic;
fn log_init() {
setup_panic!();
let env = env_logger::Env::default().default_filter_or("info");
env_logger::from_env(env).format_timestamp(None).init();
}
pub fn main() -> Result<(), ExitFailure> {
log_init();
let app_yaml = load_yaml!("app.yaml");
let app = clap::App::from(app_yaml).author(crate_authors!())
.version(crate_version!());
let matches = app.get_matches();
let subcommand = matches.subcommand();
cli::run(&matches, subcommand).map_err(|e| e.into())
}