diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/main.rs b/src/main.rs index 80126b2..b2bc844 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,24 +1,26 @@ use anyhow::{Context, Result}; use clap::Parser; use figment::providers::{Env, Format, Toml}; -use projectr::{Cli, Config, Projects}; +use projectr::{Cli, Config}; +use tracing_subscriber::EnvFilter; +#[tracing::instrument] fn main() -> Result<()> { + let cli = Cli::parse(); + let config = Config::figment() - .merge(Cli::parse()) + .merge(&cli.projects) .merge(Toml::file("projectr.toml")) .merge(Env::prefixed("PROJECTR_")) .extract() .context("Failed to extract config")?; - run(&config) -} - -#[tracing::instrument] -pub fn run(config: &Config) -> Result<()> { - Projects::from_provider(config) - .context("Failed to extract paths config")? - .for_each(|path| println!("{}", path.to_string_lossy())); + tracing_subscriber::fmt::fmt() + .pretty() + .with_writer(std::io::stderr) + .with_max_level(cli.verbosity) + .with_env_filter(EnvFilter::from_default_env()) + .init(); - Ok(()) + projectr::run(&config).context("Failed to run projectr") } |