aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs15
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());