mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2025-09-11 15:23:02 +02:00
The first part of getting admin command docs on the website. There's also the beginnings of manpage generation here, although it's kinda sus and I'm not sure how it's supposed to work. I'll leave that to anyone who wants to package it. We introduce the beginings of the xtask pattern here - we do a lot of file generation, I thought it would be best to avoid doing that on every compilation. It also helps avoid lots of runtime deps. We'll need to document generating this stuff & probably add pre-commit hooks for it, though.
59 lines
1.2 KiB
Rust
59 lines
1.2 KiB
Rust
mod alias;
|
|
mod commands;
|
|
mod directory;
|
|
mod info;
|
|
mod moderation;
|
|
|
|
use clap::Subcommand;
|
|
use conduwuit::Result;
|
|
use ruma::OwnedRoomId;
|
|
|
|
use self::{
|
|
alias::RoomAliasCommand, directory::RoomDirectoryCommand, info::RoomInfoCommand,
|
|
moderation::RoomModerationCommand,
|
|
};
|
|
use crate::admin_command_dispatch;
|
|
|
|
#[admin_command_dispatch]
|
|
#[derive(Debug, Subcommand)]
|
|
pub enum RoomCommand {
|
|
/// - List all rooms the server knows about
|
|
#[clap(alias = "list")]
|
|
ListRooms {
|
|
page: Option<usize>,
|
|
|
|
/// Excludes rooms that we have federation disabled with
|
|
#[arg(long)]
|
|
exclude_disabled: bool,
|
|
|
|
/// Excludes rooms that we have banned
|
|
#[arg(long)]
|
|
exclude_banned: bool,
|
|
|
|
#[arg(long)]
|
|
/// Whether to only output room IDs without supplementary room
|
|
/// information
|
|
no_details: bool,
|
|
},
|
|
|
|
#[command(subcommand)]
|
|
/// - View information about a room we know about
|
|
Info(RoomInfoCommand),
|
|
|
|
#[command(subcommand)]
|
|
/// - Manage moderation of remote or local rooms
|
|
Moderation(RoomModerationCommand),
|
|
|
|
#[command(subcommand)]
|
|
/// - Manage rooms' aliases
|
|
Alias(RoomAliasCommand),
|
|
|
|
#[command(subcommand)]
|
|
/// - Manage the room directory
|
|
Directory(RoomDirectoryCommand),
|
|
|
|
/// - Check if we know about a room
|
|
Exists {
|
|
room_id: OwnedRoomId,
|
|
},
|
|
}
|