about summary refs log tree commit diff stats
path: root/pkgs/by-name/ts/tskm/src/main.rs
blob: 77f2dcca92b3cda4b10e1f4ea19cd843724377a3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use anyhow::Result;
use clap::{CommandFactory, Parser};

use crate::{
    cli::{CliArgs, Command},
    interface::{input, neorg, open, project},
    state::State,
};

pub mod cli;
pub mod interface;
pub mod rofi;
pub mod state;
pub mod task;

fn main() -> Result<(), anyhow::Error> {
    clap_complete::CompleteEnv::with_factory(CliArgs::command).complete();

    let args = CliArgs::parse();

    stderrlog::new()
        .module(module_path!())
        .quiet(args.quiet)
        .show_module_names(true)
        .color(stderrlog::ColorChoice::Auto)
        .verbosity(usize::from(args.verbosity))
        .timestamp(stderrlog::Timestamp::Off)
        .init()
        .expect("Let's just hope that this does not panic");

    let mut state = State::new_rw()?;

    match args.command {
        Command::Inputs { command } => input::handle(command)?,
        Command::Neorg { command } => neorg::handle(command, &mut state)?,
        Command::Open { command } => open::handle(command, &mut state)?,
        Command::Projects { command } => project::handle(command)?,
    }

    Ok(())
}