diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 6920bd7..cdd8f3f 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -16,7 +16,7 @@ jobs: - uses: dtolnay/rust-toolchain@nightly with: components: rustfmt - - run: cargo fmt --check --workspace --all + - run: cargo fmt --check --all clippy: runs-on: ubuntu-latest steps: diff --git a/src/config.rs b/src/config.rs index 0f113f0..fdd2054 100644 --- a/src/config.rs +++ b/src/config.rs @@ -6,10 +6,15 @@ use clap::{arg, value_parser, Arg, ArgAction, ArgMatches, Command}; use fern::colors::{Color, ColoredLevelConfig}; use log::LevelFilter; use watchers::config::defaults; -use watchers::config::Config; +use watchers::config::Config as WatchersConfig; use watchers::config::FileConfig; -pub fn setup_logger(verbosity: LevelFilter) -> Result<(), fern::InitError> { +pub struct Config { + pub watchers_config: WatchersConfig, + verbosity: LevelFilter, +} + +pub fn setup_logger(config: &Config) -> Result<(), fern::InitError> { fern::Dispatch::new() .format(|out, message, record| { let colors = ColoredLevelConfig::new() @@ -25,8 +30,8 @@ pub fn setup_logger(verbosity: LevelFilter) -> Result<(), fern::InitError> { )); }) .level(log::LevelFilter::Error) - .level_for("watchers", verbosity) - .level_for("awatcher", verbosity) + .level_for("watchers", config.verbosity) + .level_for("awatcher", config.verbosity) .chain(std::io::stdout()) .apply()?; Ok(()) @@ -77,15 +82,17 @@ pub fn from_cli() -> anyhow::Result { }; Ok(Config { - port: config.server.port, - host: config.server.host, - idle_timeout: config.client.get_idle_timeout(), - poll_time_idle: config.client.get_poll_time_idle(), - poll_time_window: config.client.get_poll_time_window(), - idle_bucket_name, - active_window_bucket_name, - filters: config.client.filters, - no_server: *matches.get_one("no-server").unwrap(), + watchers_config: WatchersConfig { + port: config.server.port, + host: config.server.host, + idle_timeout: config.client.get_idle_timeout(), + poll_time_idle: config.client.get_poll_time_idle(), + poll_time_window: config.client.get_poll_time_window(), + idle_bucket_name, + active_window_bucket_name, + filters: config.client.filters, + no_server: *matches.get_one("no-server").unwrap(), + }, verbosity, }) } diff --git a/src/main.rs b/src/main.rs index f05da42..35bba3f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,9 +11,9 @@ use watchers::ReportClient; fn main() -> anyhow::Result<()> { let config = config::from_cli()?; - config::setup_logger(config.verbosity)?; + config::setup_logger(&config)?; - let client = ReportClient::new(config)?; + let client = ReportClient::new(config.watchers_config)?; let client = Arc::new(client); if client.config.no_server { diff --git a/watchers/src/config.rs b/watchers/src/config.rs index cc7ab09..7d0b608 100644 --- a/watchers/src/config.rs +++ b/watchers/src/config.rs @@ -4,7 +4,6 @@ mod filters; use self::filters::{Filter, Replacement}; pub use file_config::FileConfig; -use log::LevelFilter; use std::time::Duration; pub struct Config { @@ -16,7 +15,6 @@ pub struct Config { pub idle_bucket_name: String, pub active_window_bucket_name: String, pub no_server: bool, - pub verbosity: LevelFilter, pub filters: Vec, }