From 5ea52fdf0e6d5c571d20c1dbf3fadac3a60afa08 Mon Sep 17 00:00:00 2001 From: Steppy Date: Mon, 16 Dec 2024 14:34:40 +0100 Subject: [PATCH] Add basic logger --- src/logger.rs | 35 +++++++++++++++++++++++++++++++++++ src/main.rs | 4 ++++ 2 files changed, 39 insertions(+) create mode 100644 src/logger.rs diff --git a/src/logger.rs b/src/logger.rs new file mode 100644 index 0000000..a3d9a92 --- /dev/null +++ b/src/logger.rs @@ -0,0 +1,35 @@ +#[derive(Debug, Default)] +pub struct Logger { + pub quiet: bool, +} + +impl Logger { + pub fn info(&self, message: impl ToString) { + if self.quiet { + return; + } + println!("{}", message.to_string()); + } +} + +#[macro_export] +macro_rules! log { + ($logger:expr, $level:ident, $($args:tt)*) => { + $logger.$level(format!($($args)*)); + }; + ($logger:expr, $($args:tt)*) => { + log!($logger, info, $($args)*); + } +} + +#[cfg(test)] +mod test { + use crate::logger::Logger; + + #[test] + #[ignore] + fn syntax_test() { + let logger = Logger { quiet: false }; + log!(logger, "Foo {}", "bar"); + } +} diff --git a/src/main.rs b/src/main.rs index 87f3bd0..2f95742 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,9 +2,11 @@ mod action; mod file; mod os_string_builder; mod server; +mod logger; use crate::action::{Action, FileAction, ServerActions}; use crate::file::{FileMatcher, FileNameInfo}; +use crate::logger::Logger; use crate::os_string_builder::ReplaceWithOsStr; use clap::{Parser, Subcommand, ValueEnum}; use lazy_regex::{lazy_regex, Lazy, Regex}; @@ -109,6 +111,8 @@ enum OldVersionPolicy { fn main() -> Result<(), String> { let args = Args::parse(); + + let logger = Logger { quiet: false }; let mut configured_servers = LazyCell::new(parse_server_configuration_from_env); let servers = args