wasmer_cli/commands/app/
mod.rs

1//! Edge app commands.
2
3pub 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/// Manage Wasmer Deploy apps.
25#[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}