use clap::Parser;
mod install;
mod list;
mod remove;
mod upgrade;
mod upgrade_all;
#[derive(Debug, Parser)]
pub enum Command {
#[clap(alias = "a")]
Install(install::Args),
#[clap(alias = "r")]
Remove(remove::Args),
#[clap(alias = "ls")]
List(list::Args),
#[clap(alias = "u")]
Upgrade(upgrade::Args),
#[clap(alias = "ua")]
UpgradeAll(upgrade_all::Args),
}
#[derive(Debug, Parser)]
pub struct Args {
#[command(subcommand)]
command: Command,
}
pub async fn execute(cmd: Args) -> miette::Result<()> {
match cmd.command {
Command::Install(args) => install::execute(args).await?,
Command::Remove(args) => remove::execute(args).await?,
Command::List(args) => list::execute(args).await?,
Command::Upgrade(args) => upgrade::execute(args).await?,
Command::UpgradeAll(args) => upgrade_all::execute(args).await?,
};
Ok(())
}