machines/rust/lib/common/src/lib.rs

41 lines
989 B
Rust
Raw Normal View History

use std::str::FromStr;
use log::LevelFilter;
pub mod base64;
pub mod bitwarden;
pub mod curl;
pub mod env;
pub mod fs;
pub mod json;
pub mod proc;
pub mod yaml;
pub fn read_level_filter() -> LevelFilter {
let env = env::read_env("LOGLEVEL").unwrap_or(String::from("INFO"));
let env_upper = env.to_uppercase();
let level = match env_upper.as_str() {
"VERBOSE" => "TRACE",
"WARNING" => "WARN",
l => l,
};
log::LevelFilter::from_str(level).unwrap_or(log::LevelFilter::Info)
}
pub fn entrypoint(m: impl FnOnce() -> anyhow::Result<()>) {
env_logger::builder()
.filter_level(read_level_filter())
.format_timestamp(None)
.format_module_path(false)
.format_file(false)
.format_source_path(false)
.format_target(false)
.try_init()
.expect("Could not set logger");
let res = m();
if let Err(err) = res {
log::error!("{err:#}");
std::process::exit(1);
}
}