diff options
author | Toby Vincent <tobyv13@gmail.com> | 2022-11-22 15:20:18 -0600 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2022-11-22 15:20:18 -0600 |
commit | 8c4e03340a39a966a06bdce0c948b5462774d020 (patch) | |
tree | 219cd883e757ddef446f921b0cf298c48a6df24f /src/main.rs | |
parent | 72e9765d58b87125bdd5a2664bbc58202bdedff7 (diff) |
refactor: improve cli and config parsing
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") } |