use anyhow::Result; use sequoia_openpgp::Fingerprint; use crate::commands; use crate::cli::cli_args::{CliArgs, HuskSubcommands}; use crate::config::HuskConfigContainer; pub mod daemon; pub mod introducer; pub mod locals; #[derive(thiserror::Error, Debug)] pub enum CommandError { #[error("Certificate not found: {0}")] CertNotFound(Fingerprint), #[error("Certificate not usable: {0}")] CertNotUsable(Fingerprint), #[error("Certificate {0} is not alive (is expired or created in the future)")] CertNotAlive(Fingerprint), #[error("Certificate is revoked: {0}")] CertRevoked(Fingerprint), } pub async fn dispatch(cli: CliArgs, config: HuskConfigContainer) -> Result<()> { match cli.subcommand { HuskSubcommands::Daemon(subcmd) => { commands::daemon::dispatch(subcmd, config).await?; }, HuskSubcommands::Introducer(subcmd) => { commands::introducer::dispatch(subcmd, config).await?; }, HuskSubcommands::Locals(subcmd) => { commands::locals::dispatch(subcmd, config).await?; }, } Ok(()) }