use clap::{Args, Subcommand};
use crate::cli::GlobalFlags;
pub mod create;
pub mod get;
pub mod ls;
pub mod rm;
#[derive(Args, Debug)]
pub struct VolumeArgs {
#[command(subcommand)]
pub command: VolumeCommand,
}
#[derive(Subcommand, Debug)]
pub enum VolumeCommand {
Create(create::CreateArgs),
#[command(visible_alias = "list")]
Ls(ls::LsArgs),
#[command(visible_alias = "inspect")]
Get(get::GetArgs),
#[command(visible_alias = "delete")]
Rm(rm::RmArgs),
}
pub async fn execute(args: VolumeArgs, global: &GlobalFlags) -> anyhow::Result<()> {
match args.command {
VolumeCommand::Create(a) => create::run(a, global).await,
VolumeCommand::Ls(a) => ls::run(a, global).await,
VolumeCommand::Get(a) => get::run(a, global).await,
VolumeCommand::Rm(a) => rm::run(a, global).await,
}
}