summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-11-22 15:20:18 -0600
committerToby Vincent <tobyv13@gmail.com>2022-11-22 15:20:18 -0600
commit8c4e03340a39a966a06bdce0c948b5462774d020 (patch)
tree219cd883e757ddef446f921b0cf298c48a6df24f /src/main.rs
parent72e9765d58b87125bdd5a2664bbc58202bdedff7 (diff)
refactor: improve cli and config parsing
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs24
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")
}