use log::error;
use std::io::Write;
use std::process;
use vex2pdf::lib_utils::config::Config;
use vex2pdf::lib_utils::errors::Vex2PdfError;
use vex2pdf::show_full_licenses;
fn main() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.format(|buf, record| {
match record.level() {
log::Level::Error | log::Level::Warn => {
writeln!(
&mut std::io::stderr(),
"[{} {}] {}",
buf.timestamp(),
record.level(),
record.args()
)
}
_ => {
writeln!(
buf,
"[{} {}] {}",
buf.timestamp(),
record.level(),
record.args()
)
}
}
})
.target(env_logger::Target::Stdout)
.init();
let config = Config::build_with_env_cli().unwrap_or_else(|err| {
match err {
Vex2PdfError::VoluntaryLicenseDisplayInterruption => show_full_licenses(),
_ => {
error!("Problem setting up working environment:");
error!("{}", { err });
}
}
process::exit(1);
});
if let Err(e) = vex2pdf::run(config) {
error!("Application error: {e}");
process::exit(1);
}
}