use crate::cli::gitea::org::GiteaOrgArgs;
use crate::cli::gitea::repo::GiteaRepoArgs;
use crate::cli::gitea::tenant::GiteaTenantArgs;
use crate::cli::gitea::user::GiteaUserArgs;
use clap::Subcommand;
use eyre::Result;
#[derive(Subcommand, Debug, Clone)]
pub enum GiteaCommand {
Tenant(GiteaTenantArgs),
#[command(alias = "orgs")]
Org(GiteaOrgArgs),
#[command(alias = "users")]
User(GiteaUserArgs),
#[command(alias = "repos")]
Repo(GiteaRepoArgs),
}
impl GiteaCommand {
pub async fn invoke(self) -> Result<()> {
match self {
GiteaCommand::Tenant(args) => args.invoke().await?,
GiteaCommand::Org(args) => args.invoke().await?,
GiteaCommand::User(args) => args.invoke().await?,
GiteaCommand::Repo(args) => args.invoke().await?,
}
Ok(())
}
}