extern crate lazy_static; use clap::AppSettings; use structopt::StructOpt; use env_logger; use log::{ trace, error }; mod conf; mod backends; #[derive(StructOpt, Debug)] #[structopt( name = "evr", version = "0.1", author = "by syn", global_settings = &[ AppSettings::ColoredHelp, AppSettings::UnifiedHelpMessage ], )] struct EVROpts { /// source filename #[structopt(long, index = 1)] src: String, /// show time (wall) #[structopt(short, long)] time: bool, /// show mem usage (rss) #[structopt(short, long)] mem: bool } fn main() { let opts = EVROpts::from_args(); env_logger::builder() .format_timestamp(None) .init(); let src_path: std::path::PathBuf = opts.src.into(); let config = conf::get_conf(); let result = if src_path.exists() { config.run(&src_path) } else { config.make(&src_path) }; match result { Ok(_) => trace!("ok"), Err(err) => error!("{}", err) } }