summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs35
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)?;