summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/main.rs b/src/main.rs
index 7f3b90d..7fbed15 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,34 +1,22 @@
-use anyhow::{Context, Result};
+use anyhow::Result;
use clap::Parser;
-use projectr::{project::ProjectItem, Config};
-use tokio::signal;
+use projectr::{project::Project, search::Search, Config};
-#[tokio::main]
-async fn main() -> Result<()> {
- let cli = Config::parse();
+fn main() -> Result<()> {
+ let config = Config::parse();
tracing_subscriber::fmt::fmt()
.pretty()
.with_writer(std::io::stderr)
- .with_max_level(&cli.verbosity)
+ .with_max_level(&config.verbosity)
.init();
- let res = tokio::select! {
- res = signal::ctrl_c() => res.map_err(Into::into),
- res = run(cli) => res.context("Failed to run projectr"),
- };
+ let mut projects: Vec<Project> = Search::new(config).into_iter().collect();
- res
-}
-
-#[tracing::instrument]
-pub async fn run(config: Config) -> Result<()> {
- let mut projects: Vec<ProjectItem> = config.search.into_iter().collect();
-
- projects.sort_unstable_by_key(|p| *p.timestamp());
+ projects.sort_unstable_by_key(|p| p.timestamp);
for project in projects {
- println!("{}", project.to_path_buf().to_string_lossy())
+ println!("{}", project.worktree.to_string_lossy())
}
Ok(())