feat: cli base

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2025-10-13 13:48:49 +01:00
parent 4e1d105787
commit 73c75f941a
13 changed files with 1426 additions and 0 deletions

32
src/log.rs Normal file
View File

@@ -0,0 +1,32 @@
use log::LevelFilter;
use log4rs::{
Config,
append::console::{ConsoleAppender, Target},
config::{Appender, Root},
encode::pattern::PatternEncoder,
};
pub fn init(quiet: bool, verbose: bool) -> Result<(), Box<dyn std::error::Error>> {
let level = if quiet {
LevelFilter::Warn
} else if verbose {
LevelFilter::Debug
} else {
LevelFilter::Info
};
let encoder = Box::new(PatternEncoder::new("{d} {h({l})} {M}::{L} - {m}{n}"));
let console = ConsoleAppender::builder()
.encoder(encoder)
.target(Target::Stderr)
.build();
let config = Config::builder()
.appender(Appender::builder().build("stderr", Box::new(console)))
.build(Root::builder().appender("stderr").build(level))?;
log4rs::init_config(config)?;
Ok(())
}