wasmer_cli/commands/app/
mod.rs1pub mod cdn;
4pub mod create;
5pub mod database;
6pub mod delete;
7pub mod deploy;
8mod deployments;
9pub mod get;
10pub mod info;
11pub mod list;
12pub mod logs;
13pub mod purge_cache;
14pub mod regions;
15pub mod secrets;
16pub mod version;
17pub mod volumes;
18
19mod util;
20pub use util::AppIdentArgOpts;
21
22use crate::commands::AsyncCliCommand;
23
24#[derive(clap::Subcommand, Debug)]
26pub enum CmdApp {
27 Deploy(deploy::CmdAppDeploy),
28 Create(create::CmdAppCreate),
29 Get(get::CmdAppGet),
30 Info(info::CmdAppInfo),
31 List(list::CmdAppList),
32 Logs(logs::CmdAppLogs),
33 #[clap(subcommand)]
34 Cdn(cdn::CmdAppCdn),
35 PurgeCache(purge_cache::CmdAppPurgeCache),
36 Delete(delete::CmdAppDelete),
37 #[clap(subcommand)]
38 Version(version::CmdAppVersion),
39 #[clap(subcommand, alias = "secrets")]
40 Secret(secrets::CmdAppSecrets),
41 #[clap(subcommand, alias = "regions")]
42 Region(regions::CmdAppRegions),
43 #[clap(subcommand, alias = "volumes")]
44 Volume(volumes::CmdAppVolumes),
45 #[clap(subcommand, alias = "databases")]
46 Database(database::CmdAppDatabase),
47 #[clap(subcommand, alias = "deployments")]
48 Deployment(deployments::CmdAppDeployment),
49}
50
51#[async_trait::async_trait]
52impl AsyncCliCommand for CmdApp {
53 type Output = ();
54
55 async fn run_async(self) -> Result<Self::Output, anyhow::Error> {
56 match self {
57 Self::Get(cmd) => {
58 cmd.run_async().await?;
59 Ok(())
60 }
61 Self::Info(cmd) => {
62 cmd.run_async().await?;
63 Ok(())
64 }
65 Self::Create(cmd) => {
66 cmd.run_async().await?;
67 Ok(())
68 }
69 Self::List(cmd) => cmd.run_async().await,
70 Self::Logs(cmd) => cmd.run_async().await,
71 Self::Cdn(cmd) => cmd.run_async().await,
72 Self::Delete(cmd) => cmd.run_async().await,
73 Self::Version(cmd) => cmd.run_async().await,
74 Self::Deploy(cmd) => cmd.run_async().await,
75 Self::PurgeCache(cmd) => cmd.run_async().await,
76 Self::Secret(cmd) => cmd.run_async().await,
77 Self::Region(cmd) => cmd.run_async().await,
78 Self::Volume(cmd) => cmd.run_async().await,
79 Self::Database(cmd) => cmd.run_async().await,
80 Self::Deployment(cmd) => cmd.run_async().await,
81 }
82 }
83}