summaryrefslogtreecommitdiffstats
path: root/src/main.rs
blob: bdc7998b36bbee4e668b5c4120d4846ad7953d5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use anyhow::Result;
use clap::Parser;
use projectr::{config::Config, project::Projects, Search};

fn main() -> Result<()> {
    let config = Config::parse();

    tracing_subscriber::fmt::fmt()
        .pretty()
        .with_writer(std::io::stderr)
        .with_max_level(&config.verbosity)
        .init();

    let mut projects = Projects::from(config.parsers);

    projects.extend(config.projects);

    if let Ok(search) = Search::try_from(config.search) {
        projects.extend(search);
    }

    Ok(projects.write(std::io::stdout())?)
}