#![allow(clippy::missing_panics_doc)] #![allow(clippy::missing_errors_doc)] use anyhow::Result; use clap::Parser; use crate::interface::{input, neorg, open, project}; pub mod cli; pub mod interface; pub mod rofi; pub mod task; use crate::cli::{CliArgs, Command}; fn main() -> Result<(), anyhow::Error> { // TODO: Support these completions for the respective types <2025-04-04> // // ID_GENERATION_FUNCTION // ```sh // context="$(task _get rc.context)" // if [ "$context" ]; then // filter="project:$context" // else // filter="0-10000" // fi // tasks="$(task "$filter" _ids)" // // if [ "$tasks" ]; then // echo "$tasks" | xargs task _zshids | awk -F: -v q="'" '{gsub(/'\''/, q "\\" q q ); print $1 ":" q $2 q}' // fi // ``` // // ARGUMENTS: // ID | *([0-9]) := [[%ID_GENERATION_FUNCTION]] // The function displays all possible IDs of the eligible tasks. // // WS := %ALL_WORKSPACES // All possible workspaces. // // P := %ALL_PROJECTS_PIPE // The possible project. // // F := [[fd . --max-depth 3]] // A URL-Input file to use as source. let args = CliArgs::parse(); stderrlog::new() .module(module_path!()) .quiet(false) .show_module_names(true) .color(stderrlog::ColorChoice::Auto) .verbosity(5) .timestamp(stderrlog::Timestamp::Off) .init() .expect("Let's just hope that this does not panic"); match args.command { Command::Inputs { command } => input::handle(command)?, Command::Neorg { command } => neorg::handle(command)?, Command::Open { command } => open::handle(command)?, Command::Projects { command } => project::handle(command)?, } Ok(()) }