mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-04 04:56:49 +00:00
51 lines
1.3 KiB
Rust
51 lines
1.3 KiB
Rust
#![feature(iter_intersperse)]
|
|
|
|
use command_parser::Tree;
|
|
use commands::COMMAND_TREE;
|
|
|
|
fn main() {
|
|
related();
|
|
}
|
|
|
|
fn related() {
|
|
let cmd = std::env::args().nth(1).unwrap();
|
|
let related = commands::get_related_commands("pk;".to_string(), cmd);
|
|
println!("Related commands:\n{related}");
|
|
}
|
|
|
|
fn parse() {
|
|
let cmd = std::env::args()
|
|
.skip(1)
|
|
.intersperse(" ".to_string())
|
|
.collect::<String>();
|
|
if !cmd.is_empty() {
|
|
use commands::CommandResult;
|
|
let parsed = commands::parse_command("pk;".to_string(), cmd);
|
|
match parsed {
|
|
CommandResult::Ok { command } => println!("{command:#?}"),
|
|
CommandResult::Err { error } => println!("{error}"),
|
|
}
|
|
} else {
|
|
for command in command_definitions::all() {
|
|
println!("{} => {} - {}", command.cb, command, command.help);
|
|
}
|
|
}
|
|
}
|
|
|
|
fn print_tree(tree: &Tree, depth: usize) {
|
|
println!();
|
|
for (token, branch) in tree.branches() {
|
|
for _ in 0..depth {
|
|
print!(" ");
|
|
}
|
|
for _ in 0..depth {
|
|
print!("-");
|
|
}
|
|
print!("> {token:?}");
|
|
if let Some(command) = branch.command() {
|
|
println!(": {}", command.cb)
|
|
} else {
|
|
print_tree(branch, depth + 1)
|
|
}
|
|
}
|
|
}
|