diff --git a/crates/commands/src/lib.rs b/crates/commands/src/lib.rs index 989d2f9b..2944e222 100644 --- a/crates/commands/src/lib.rs +++ b/crates/commands/src/lib.rs @@ -55,7 +55,7 @@ pub struct ParsedCommand { pub flags: HashMap>, } -fn parse_command(input: String) -> CommandResult { +pub fn parse_command(input: String) -> CommandResult { let input: SmolStr = input.into(); let mut local_tree: TreeBranch = COMMAND_TREE.clone(); diff --git a/crates/commands/src/main.rs b/crates/commands/src/main.rs index aa8ce9e4..eb5748e5 100644 --- a/crates/commands/src/main.rs +++ b/crates/commands/src/main.rs @@ -1,7 +1,18 @@ +#![feature(iter_intersperse)] + use commands::commands as cmds; fn main() { - for command in cmds::all() { - println!("{}", command); + let cmd = std::env::args() + .skip(1) + .intersperse(" ".to_string()) + .collect::(); + if !cmd.is_empty() { + let parsed = commands::parse_command(cmd); + println!("{:#?}", parsed); + } else { + for command in cmds::all() { + println!("{}", command); + } } }