pub(crate) mod append;
mod attribute;
mod context;
mod delete;
mod export;
mod gc;
pub(crate) mod get;
mod init;
mod inspect;
mod link;
mod list;
mod migrate_scheme;
mod regenerate;
mod related;
mod search;
mod snapshot;
use crate::cli::{Cli, Command};
use crate::error::CliError;
pub(crate) async fn run(cli: Cli) -> Result<(), CliError> {
let g = cli.globals;
match cli.command {
Command::Init(a) => init::run(a, &g).await,
Command::Append(a) => append::run(a, &g).await,
Command::Get(a) => get::run(a, &g).await,
Command::List(a) => list::run(a, &g).await,
Command::Search(a) => search::run(a, &g).await,
Command::Related(a) => related::run(a, &g).await,
Command::Link(c) => link::run(c, &g).await,
Command::Delete(a) => delete::run_delete(a, &g).await,
Command::DeletePartition(a) => delete::run_delete_partition(a, &g).await,
Command::Inspect(a) => inspect::run(a, &g).await,
Command::Export(a) => export::run(a, &g).await,
Command::Attribute(a) => attribute::run(a, &g).await,
Command::Snapshot(a) => snapshot::run(a, &g).await,
Command::Regenerate(a) => regenerate::run(a, &g).await,
Command::MigrateScheme(a) => migrate_scheme::run(a, &g).await,
Command::Gc(a) => gc::run(a, &g).await,
Command::Context(a) => context::run(a, &g).await,
}
}