wasmer_cli/commands/domain/
register.rs

1use crate::{commands::AsyncCliCommand, config::WasmerEnv, opts::ItemTableFormatOpts};
2
3/// Show a domain
4#[derive(clap::Parser, Debug)]
5pub struct CmdDomainRegister {
6    #[clap(flatten)]
7    fmt: ItemTableFormatOpts,
8
9    #[clap(flatten)]
10    env: WasmerEnv,
11
12    /// Name of the domain.
13    name: String,
14
15    /// owner under which the domain will live.
16    #[clap(long, short)]
17    namespace: Option<String>,
18
19    /// auto update DNS records for this domain.
20    #[clap(long, short)]
21    import_records: bool,
22}
23
24#[async_trait::async_trait]
25impl AsyncCliCommand for CmdDomainRegister {
26    type Output = ();
27
28    async fn run_async(self) -> Result<(), anyhow::Error> {
29        let client = self.env.client()?;
30        let domain = wasmer_backend_api::query::register_domain(
31            &client,
32            self.name,
33            self.namespace,
34            Some(self.import_records),
35        )
36        .await?;
37        println!(
38            "{}: domain registered under owner `{}`",
39            domain.name, domain.owner.global_name
40        );
41        Ok(())
42    }
43}