mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2025-06-27 01:36:36 +02:00
84 lines
1.7 KiB
Rust
84 lines
1.7 KiB
Rust
#![allow(clippy::wildcard_imports)]
|
|
|
|
pub(crate) mod appservice;
|
|
pub(crate) mod check;
|
|
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! {}
|
|
|
|
/// Install the admin command handler
|
|
#[allow(clippy::let_underscore_must_use)]
|
|
pub async fn init() {
|
|
_ = services()
|
|
.admin
|
|
.complete
|
|
.write()
|
|
.expect("locked for writing")
|
|
.insert(handler::complete);
|
|
_ = services()
|
|
.admin
|
|
.handle
|
|
.write()
|
|
.await
|
|
.insert(handler::handle);
|
|
}
|
|
|
|
/// Uninstall the admin command handler
|
|
#[allow(clippy::let_underscore_must_use)]
|
|
pub async fn fini() {
|
|
_ = services().admin.handle.write().await.take();
|
|
_ = services()
|
|
.admin
|
|
.complete
|
|
.write()
|
|
.expect("locked for writing")
|
|
.take();
|
|
}
|
|
|
|
#[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:"));
|
|
}
|
|
}
|