just/src/run.rs

38 lines
832 B
Rust
Raw Normal View History

use crate::common::*;
2016-10-23 16:43:52 -07:00
pub fn run() -> Result<(), i32> {
#[cfg(windows)]
ansi_term::enable_ansi_support().ok();
env_logger::Builder::from_env(
env_logger::Env::new()
.filter("JUST_LOG")
.write_style("JUST_LOG_STYLE"),
)
.init();
let app = Config::app();
info!("Parsing command line arguments…");
let matches = app.get_matches();
2016-10-23 16:43:52 -07:00
let loader = Loader::new();
let mut color = Color::auto();
let mut verbosity = Verbosity::default();
Config::from_matches(&matches)
.map_err(Error::from)
.and_then(|config| {
color = config.color;
verbosity = config.verbosity;
config.run(&loader)
})
.map_err(|error| {
if !verbosity.quiet() {
eprintln!("{}", error.color_display(color.stderr()));
}
error.code().unwrap_or(EXIT_FAILURE)
})
2016-10-23 16:43:52 -07:00
}