commit 45e7a4100091a435f585a24eed4ea099f795b6f6 from: murilo ijanc date: Thu Nov 20 20:46:55 2025 UTC Add new version format and log settings commit - ae9c90bc1fb16ce50f4f6f5f72f34a790a900269 commit + 45e7a4100091a435f585a24eed4ea099f795b6f6 blob - 89fa24d0731715eea869e261d34fa250f518c936 blob + 8474782b417c841bda748cfdb5f339c0fdadd129 --- src/main.rs +++ src/main.rs @@ -26,11 +26,9 @@ use std::{ use anyhow::{Context, anyhow, bail}; use clap::{ArgAction, Parser}; use ignore::{WalkBuilder, WalkState}; -use log::{error, info, warn}; +use log::{LevelFilter, debug, error, info, warn}; -const LONG_VERSION: &str = concat!( - env!("CARGO_PKG_NAME"), - " ", +const VERSION: &str = concat!( env!("CARGO_PKG_VERSION"), " (", env!("GIT_HASH", "unknown"), @@ -47,9 +45,8 @@ const LONG_VERSION: &str = concat!( #[derive(Debug, Parser)] #[command( name = "imgst", - about = "Image sanitization", - version = env!("CARGO_PKG_VERSION"), - long_version = LONG_VERSION, + about = "Simple Image metadata cleaner", + version = VERSION, author, propagate_version = true )] @@ -78,10 +75,10 @@ struct Args { } fn main() -> anyhow::Result<()> { - env_logger::init(); - let args = Args::parse(); + init_logger(args.verbose); + if !args.input.is_dir() { bail!("input path '{}' is not directory", args.input.display()); } @@ -208,8 +205,35 @@ fn process_img( let dst = output_root.join(rel_path); if dry_run { - info!("dry-run: would clean '{}' -> '{}'", src.display(), dst.display()); + debug!( + "dry-run: would clean '{}' -> '{}'", + src.display(), + dst.display() + ); } Ok(()) } + +fn init_logger(verbose: u8) { + use std::io::Write; + + if std::env::var_os("RUST_LOG").is_some() { + env_logger::builder() + .format(|buf, record| { + writeln!(buf, "[{}]: {}", record.level(), record.args()) + }) + .init(); + return; + } + + let level = + if verbose > 0 { LevelFilter::Debug } else { LevelFilter::Info }; + + env_logger::builder() + .filter(None, level) + .format(|buf, record| { + writeln!(buf, "[{}]: {}", record.level(), record.args()) + }) + .init(); +}