commit - ae9c90bc1fb16ce50f4f6f5f72f34a790a900269
commit + 45e7a4100091a435f585a24eed4ea099f795b6f6
blob - 89fa24d0731715eea869e261d34fa250f518c936
blob + 8474782b417c841bda748cfdb5f339c0fdadd129
--- src/main.rs
+++ src/main.rs
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"),
#[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
)]
}
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());
}
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();
+}