use clap::Parser; use streamd::cli::{Cli, Commands, TodoAction}; fn main() -> miette::Result<()> { let cli = Cli::parse(); match cli.command { Some(Commands::New) => streamd::cli::commands::new::run()?, Some(Commands::Todo { show_future, action, }) => match action { None => streamd::cli::commands::todo::run_list(show_future)?, Some(TodoAction::Edit { number }) => streamd::cli::commands::todo::run_edit(number)?, Some(TodoAction::Done { numbers }) => streamd::cli::commands::todo::run_done(&numbers)?, }, Some(Commands::Edit { number }) => streamd::cli::commands::edit::run(number)?, Some(Commands::Timesheet { decimal, debug }) => { streamd::cli::commands::timesheet::run(decimal, debug)? } Some(Commands::Daily { date }) => streamd::cli::commands::daily::run(date)?, Some(Commands::Completions { shell }) => { streamd::cli::commands::completions::run(shell); } Some(Commands::Lsp) => streamd::cli::commands::lsp::run()?, None => streamd::cli::commands::daily::run(None)?, } Ok(()) }