From c25e0264b4cc69a59796acef25f4e4462fc393cb Mon Sep 17 00:00:00 2001 From: Leonard Steppy Date: Mon, 16 Dec 2024 15:48:05 +0100 Subject: [PATCH] Add log level parameters to CLI (untested) --- src/logger.rs | 6 ++++-- src/main.rs | 11 ++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/logger.rs b/src/logger.rs index 29fc31e..89226b6 100644 --- a/src/logger.rs +++ b/src/logger.rs @@ -1,3 +1,5 @@ +use clap::ValueEnum; + #[derive(Debug, Default)] pub struct Logger { pub level: LogLevel, @@ -17,13 +19,13 @@ impl Logger { println!("{}", message.to_string()); } } - + define_log_function!(info, Info); define_log_function!(debug, Debug); define_log_function!(error, Error); } -#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Default)] +#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Default, ValueEnum)] pub enum LogLevel { Debug, #[default] diff --git a/src/main.rs b/src/main.rs index a33f187..996482a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,7 +6,7 @@ mod logger; use crate::action::{Action, FileAction, ServerActions}; use crate::file::{FileMatcher, FileNameInfo}; -use crate::logger::Logger; +use crate::logger::{LogLevel, Logger}; use crate::os_string_builder::ReplaceWithOsStr; use clap::{Parser, Subcommand, ValueEnum}; use lazy_regex::{lazy_regex, Lazy, Regex}; @@ -43,6 +43,15 @@ struct Args { /// The ssh names and optionally home directories of the servers to perform the action on #[arg(num_args = 1.., value_parser = ServerReference::from_str)] servers: Vec, + /// How verbose logging output should be + #[arg(long, conflicts_with_all = ["quiet", "info"], default_value = "info")] + log_level: Option, + /// Only log errors + #[arg(short, long, default_value = "false")] + quiet: bool, + /// Log additional debugging info + #[arg(short='v', long, default_value = "false")] + info: bool, } #[derive(Subcommand, Debug)]