From 3af70f3647e048ac938c4b7d540957533cf328d1 Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Mon, 30 May 2022 00:27:35 +0200 Subject: [PATCH] Add verbose flag --- src/main.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 60db2fa..6bbe35a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,7 @@ mod util; use actions::{list, show_plan, sync}; use chrono::{DateTime, FixedOffset}; use clap::{crate_version, Parser}; +use log::LevelFilter; use remote::Remote; use std::collections::BTreeMap; use std::path::PathBuf; @@ -21,6 +22,14 @@ pub type FileList = BTreeMap; #[derive(Parser)] #[clap(version = crate_version!())] pub struct Opt { + /// Log more stuff + #[clap(long, short, parse(from_occurrences))] + verbose: u8, + + /// Do not output anything but errors. + #[clap(long, short)] + quiet: bool, + /// The path of the backup directory on the local filesystem #[clap(short = 'l', long)] path: PathBuf, @@ -64,7 +73,16 @@ pub enum Action { fn main() -> anyhow::Result<()> { let opt = Opt::parse(); - pretty_env_logger::init(); + let log_level = match opt.verbose { + 0 if opt.quiet => LevelFilter::Error, + 0 => LevelFilter::Info, + 1 => LevelFilter::Debug, + 2.. => LevelFilter::Trace, + }; + + pretty_env_logger::formatted_builder() + .filter(None, log_level) + .init(); match opt.action { Action::Backup { all } => sync::run(&opt, all)?,