mod commands; use clap::{Args, Subcommand}; use conduwuit::Result; use crate::admin_command_dispatch; #[admin_command_dispatch] #[derive(Debug, Subcommand)] pub enum TokenCommand { /// Issue a new registration token #[clap(name = "issue")] IssueToken { /// When this token will expire. #[command(flatten)] expires: TokenExpires, }, /// Revoke a registration token #[clap(name = "revoke")] RevokeToken { /// The token to revoke. token: String, }, /// List all registration tokens #[clap(name = "list")] ListTokens, } #[derive(Debug, Args)] #[group(required = true, multiple = false)] pub struct TokenExpires { /// The maximum number of times this token is allowed to be used before it /// expires. #[arg(long)] max_uses: Option, /// The maximum age of this token (e.g. 30s, 5m, 7d). It will expire after /// this much time has passed. #[arg(long)] max_age: Option, /// This token will never expire. #[arg(long)] immortal: bool, /// A shortcut for `--max-uses 1`. #[arg(long)] once: bool, }