mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
52 lines
1.0 KiB
Rust
52 lines
1.0 KiB
Rust
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<u64>,
|
|
|
|
/// 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<String>,
|
|
|
|
/// This token will never expire.
|
|
#[arg(long)]
|
|
immortal: bool,
|
|
|
|
/// A shortcut for `--max-uses 1`.
|
|
#[arg(long)]
|
|
once: bool,
|
|
}
|