Files
continuwuity/src/admin/mod.rs
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

83 lines
1.7 KiB
Rust
Raw Normal View History

2024-06-16 01:44:41 +00:00
#![allow(clippy::wildcard_imports)]
2024-05-09 15:59:08 -07:00
pub(crate) mod appservice;
2024-06-23 09:55:51 +00:00
pub(crate) mod check;
2024-05-09 15:59:08 -07:00
pub(crate) mod debug;
pub(crate) mod federation;
pub(crate) mod handler;
pub(crate) mod media;
pub(crate) mod query;
pub(crate) mod room;
pub(crate) mod server;
pub(crate) mod user;
pub(crate) mod utils;
extern crate conduit_api as api;
extern crate conduit_core as conduit;
extern crate conduit_service as service;
pub(crate) use conduit::{mod_ctor, mod_dtor, Result};
pub(crate) use service::{services, user_is_local};
pub(crate) use crate::{
handler::Service,
utils::{escape_html, get_room_info},
};
mod_ctor! {}
mod_dtor! {}
2024-07-05 01:44:43 +00:00
/// Install the admin command handler
pub async fn init() {
2024-07-05 07:52:05 +00:00
_ = services()
.admin
.complete
.write()
.expect("locked for writing")
.insert(handler::complete);
2024-07-05 08:39:37 +00:00
_ = services()
.admin
.handle
.write()
.await
.insert(handler::handle);
2024-07-05 01:44:43 +00:00
}
/// Uninstall the admin command handler
pub async fn fini() {
2024-07-05 08:39:37 +00:00
_ = services().admin.handle.write().await.take();
2024-07-05 07:52:05 +00:00
_ = services()
.admin
.complete
.write()
.expect("locked for writing")
.take();
2024-07-05 01:44:43 +00:00
}
2024-05-09 15:59:08 -07:00
#[cfg(test)]
mod test {
use clap::Parser;
use crate::handler::AdminCommand;
#[test]
fn get_help_short() { get_help_inner("-h"); }
#[test]
fn get_help_long() { get_help_inner("--help"); }
#[test]
fn get_help_subcommand() { get_help_inner("help"); }
fn get_help_inner(input: &str) {
let error = AdminCommand::try_parse_from(["argv[0] doesn't matter", input])
.unwrap_err()
.to_string();
// Search for a handful of keywords that suggest the help printed properly
assert!(error.contains("Usage:"));
assert!(error.contains("Commands:"));
assert!(error.contains("Options:"));
}
}