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(()) }