summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
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")
}