Improve help text for admin commands
This commit is contained in:
parent
f244c0e2ce
commit
cc3ef1a8be
1 changed files with 22 additions and 5 deletions
|
@ -147,6 +147,7 @@ impl Admin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Parse chat messages from the admin room into an AdminCommand object
|
||||||
pub fn parse_admin_command(db: &Database, command_line: &str, body: Vec<&str>) -> AdminCommand {
|
pub fn parse_admin_command(db: &Database, command_line: &str, body: Vec<&str>) -> AdminCommand {
|
||||||
let mut argv: Vec<_> = command_line.split_whitespace().skip(1).collect();
|
let mut argv: Vec<_> = command_line.split_whitespace().skip(1).collect();
|
||||||
|
|
||||||
|
@ -191,10 +192,13 @@ pub fn parse_admin_command(db: &Database, command_line: &str, body: Vec<&str>) -
|
||||||
#[derive(StructOpt)]
|
#[derive(StructOpt)]
|
||||||
enum AdminCommands {
|
enum AdminCommands {
|
||||||
#[structopt(verbatim_doc_comment)]
|
#[structopt(verbatim_doc_comment)]
|
||||||
/// Register a bridge using its registration YAML
|
/// Register an appservice using its registration YAML
|
||||||
///
|
///
|
||||||
/// This command needs a YAML generated by an appservice (such as a mautrix
|
/// This command needs a YAML generated by an appservice (such as a bridge),
|
||||||
/// bridge), which must be provided in a code-block below the command.
|
/// which must be provided in a Markdown code-block below the command.
|
||||||
|
///
|
||||||
|
/// Registering a new bridge using the ID of an existing bridge will replace
|
||||||
|
/// the old one.
|
||||||
///
|
///
|
||||||
/// Example:
|
/// Example:
|
||||||
/// ````
|
/// ````
|
||||||
|
@ -204,16 +208,27 @@ enum AdminCommands {
|
||||||
/// ```
|
/// ```
|
||||||
/// ````
|
/// ````
|
||||||
RegisterAppservice,
|
RegisterAppservice,
|
||||||
/// Unregister a bridge using its ID
|
|
||||||
|
/// Unregister an appservice using its ID
|
||||||
|
///
|
||||||
|
/// You can find the ID using the `list-appservices` command.
|
||||||
UnregisterAppservice { appservice_identifier: String },
|
UnregisterAppservice { appservice_identifier: String },
|
||||||
/// List all the currently registered bridges
|
|
||||||
|
/// List all the currently registered appservices
|
||||||
ListAppservices,
|
ListAppservices,
|
||||||
|
|
||||||
/// Get the auth_chain of a PDU
|
/// Get the auth_chain of a PDU
|
||||||
GetAuthChain { event_id: Box<EventId> },
|
GetAuthChain { event_id: Box<EventId> },
|
||||||
|
|
||||||
/// Parse and print a PDU from a JSON
|
/// Parse and print a PDU from a JSON
|
||||||
|
///
|
||||||
|
/// The PDU event is only checked for validity and is not added to the
|
||||||
|
/// database.
|
||||||
ParsePdu,
|
ParsePdu,
|
||||||
|
|
||||||
/// Retrieve and print a PDU by ID from the Conduit database
|
/// Retrieve and print a PDU by ID from the Conduit database
|
||||||
GetPdu { event_id: Box<EventId> },
|
GetPdu { event_id: Box<EventId> },
|
||||||
|
|
||||||
/// Print database memory usage statistics
|
/// Print database memory usage statistics
|
||||||
DatabaseMemoryUsage,
|
DatabaseMemoryUsage,
|
||||||
}
|
}
|
||||||
|
@ -365,6 +380,7 @@ pub fn try_parse_admin_command(
|
||||||
Ok(admin_command)
|
Ok(admin_command)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Utility to turn structopt's `--help` text to markdown.
|
||||||
fn usage_to_markdown(text: &str) -> String {
|
fn usage_to_markdown(text: &str) -> String {
|
||||||
// For the conduit admin room, subcommands become main commands
|
// For the conduit admin room, subcommands become main commands
|
||||||
let text = text.replace("SUBCOMMAND", "COMMAND");
|
let text = text.replace("SUBCOMMAND", "COMMAND");
|
||||||
|
@ -390,6 +406,7 @@ fn usage_to_markdown(text: &str) -> String {
|
||||||
text.to_string()
|
text.to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert markdown to HTML using the CommonMark flavor
|
||||||
fn markdown_to_html(text: &str) -> String {
|
fn markdown_to_html(text: &str) -> String {
|
||||||
// CommonMark's spec allows HTML tags; however, CLI required arguments look
|
// CommonMark's spec allows HTML tags; however, CLI required arguments look
|
||||||
// very much like tags so escape them.
|
// very much like tags so escape them.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue