Also begin adding rust building capabilities to be able to write rust binaries for some commands.
40 lines
989 B
Rust
40 lines
989 B
Rust
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);
|
|
}
|
|
}
|