diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/main.rs b/src/main.rs index 877cfaa..35ae66d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,14 +1,17 @@ use anyhow::{Context, Result}; use clap::Parser; -use figment::providers::{Env, Format, Toml}; -use projectr::{search::Search, Cli, Config}; +use figment::{ + providers::{Env, Format, Serialized, Toml}, + Figment, +}; +use projectr::{project::ProjectItem, search::Search, Cli, Config}; #[tracing::instrument] fn main() -> Result<()> { let cli = Cli::parse(); - let config = Config::figment() - .merge(&cli.projects) + let config: Config = Figment::new() + .merge(Figment::from(Serialized::defaults(&cli.projects))) .merge(Toml::file("projectr.toml")) .merge(Env::prefixed("PROJECTR_")) .extract() @@ -25,9 +28,7 @@ fn main() -> Result<()> { #[tracing::instrument] pub fn run(config: &Config) -> Result<()> { - let mut projects: Vec<_> = Search::from_provider(config) - .context("Failed to extract paths config")? - .collect(); + let mut projects: Vec<ProjectItem> = Search::from(config.paths.to_owned()).collect(); projects.sort_unstable_by_key(|p| *p.timestamp()); |