#![feature(macro_reexport)]
#![allow(unused_imports)]
pub extern crate chrono;
pub extern crate console;
pub extern crate ctrlc;
pub extern crate dialoguer;
#[macro_reexport(format_err)]
#[macro_use]
pub extern crate failure;
#[macro_reexport(Fail)]
#[macro_use] #[no_link]
pub extern crate failure_derive;
#[cfg(feature="logging")]
pub extern crate fern;
pub extern crate indicatif;
#[macro_reexport(iproduct, izip)]
#[macro_use]
pub extern crate itertools;
#[macro_reexport(lazy_static)]
#[macro_use]
pub extern crate lazy_static;
pub extern crate libc;
#[cfg(feature="logging")]
extern crate log;
#[macro_reexport(hashmap, hashset, btreemap, btreeset)]
#[macro_use] #[no_link]
pub extern crate maplit;
pub extern crate rand;
pub extern crate rayon;
pub extern crate regex;
pub extern crate reqwest;
pub extern crate semver;
pub extern crate serde;
#[macro_reexport(Serialize, Deserialize)]
#[macro_use] #[no_link]
pub extern crate serde_derive;
pub extern crate serde_json;
pub extern crate serde_yaml;
pub extern crate shellexpand;
pub extern crate std_prelude;
pub extern crate structopt;
#[macro_reexport(StructOpt)]
#[macro_use] #[no_link]
pub extern crate structopt_derive;
pub extern crate tabwriter;
pub extern crate tar;
pub extern crate tempdir;
pub extern crate toml;
pub extern crate walkdir;
pub mod prelude;
pub mod term;
#[cfg(feature="logging")]
pub fn init_log(
verbosity: u64,
stderr: bool,
logfile: Option<&::std::path::Path>)
{
use log::LogLevelFilter;
let level = match verbosity {
0 => return,
1 => LogLevelFilter::Error,
2 => LogLevelFilter::Info,
3 => LogLevelFilter::Debug,
_ => LogLevelFilter::Trace,
};
let dispatch = ::fern::Dispatch::new()
.format(|out, message, record| {
out.finish(format_args!(
"{: <5} [{} {}] {}",
record.level(),
::chrono::Local::now().format("%Y-%m-%d %H:%M:%S"),
record.target(),
message
))
})
.level(level);
let dispatch = if stderr {
dispatch.chain(std::io::stderr())
} else {
dispatch
};
let dispatch = if let Some(p) = logfile {
let f = ::fern::log_file(p)
.expect(&format!("failed to open logfile: {:?}", p));
dispatch.chain(f)
} else {
dispatch
};
dispatch.apply().expect("failed to set logger, was it already initialized?");
}