diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 35 |
1 files changed, 7 insertions, 28 deletions
diff --git a/src/main.rs b/src/main.rs index 8ec7006..c85bf2f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,24 +1,24 @@ use clap::Parser; use figment::{ - providers::{Env, Format, Serialized, Toml}, + providers::{Env, Format, Toml}, Figment, }; -use std::{error::Error, fs::File, sync::Arc}; -use tmuxr::{Cli, Config, Finder, Paths, Result}; +use std::error::Error; +use tmuxr::{logging, Cli, Config, Finder, Paths, Result}; use tracing::info; -use tracing_subscriber::prelude::*; fn main() -> Result<()> { let cli = Cli::parse(); - let config = Figment::from(Serialized::defaults(Config::default())) - .merge(Serialized::defaults(&cli)) + let config = Figment::from(Config::default()) + .merge(cli) .merge(Toml::file("tmuxr.toml")) .merge(Env::prefixed("TMUXR_")) .extract() .map_err(eprintln)?; - init_subscriber(&cli, &config).map_err(eprintln)?; + logging::init_from_provider(&config).map_err(eprintln)?; + run(&config).map_err(eprintln) } @@ -27,27 +27,6 @@ fn eprintln<E: Error>(err: E) -> E { err } -fn init_subscriber(cli: &Cli, config: &Config) -> Result<()> { - let stdout_layer = tracing_subscriber::fmt::layer() - .pretty() - .with_filter(cli.verbose.as_filter()); - - let log_layer = if config.log_enabled { - let file = File::create(&config.log_file)?; - let log_layer = tracing_subscriber::fmt::layer().with_writer(Arc::new(file)); - Some(log_layer) - } else { - None - }; - - tracing_subscriber::registry() - .with(stdout_layer) - .with(log_layer) - .init(); - - Ok(()) -} - #[tracing::instrument()] pub fn run(config: &Config) -> Result<()> { let paths = Paths::from_provider(config)?; |