diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 28 |
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(()) |