Crates.io | tshell |
lib.rs | tshell |
version | 0.2.2 |
source | src |
created_at | 2017-03-30 17:46:32.701009 |
updated_at | 2018-02-02 22:34:24.36558 |
description | TShell, a command tree framework with autocompletion and contextual help |
homepage | |
repository | https://github.com/auseckas/tshell |
max_upload_size | |
id | 9258 |
size | 34,735 |
A command tree framework with autocompletion and contextual help based on rustyline.
Supported Platforms
This project uses Cargo and Rust stable
cargo build --release
#[macro_use]
extern crate tshell;
use tshell::{CommandTree, CommandResult};
use std::collections::HashMap;
fn world(args: HashMap<String, &str>, o_context: &mut Option<Context>, history: &HashMap<String, String>) -> CommandResult<Option<String>> {
println!("World");
Ok(None)
}
fn darkness(args: HashMap<String, &str>, o_context: &mut Option<Context>, history: &HashMap<String, String>) -> CommandResult<Option<String>> {
if let Some(friend) = args.get("friend") {
println!("Darkness, friend = {}", friend);
}
Ok(None)
}
fn main() {
let mut root = shell_command_tree!{my_cli,
"MyCLI",
"0.1.0",
[
shell_command_node!{
cmd: hello,
txt_help: "Hello Root",
nodes: [
shell_command_node!{
cmd: world,
txt_help: "World",
callback: world
},
shell_command_node!{
cmd: darkness,
txt_help: "Darkness",
callback: darkness,
args: [friend => true]
}
]
}]
};
root.run();
}
You can use this package in your project by adding the following
to your Cargo.toml
:
[dependencies]
tshell = "^0.1"
Command | Action |
---|---|
up | Move a level, exit from current context |
top | Move to top context |
exit or quit | Exit the shell |
help | lists all the available commands |
? | contextual help |
[Object] ? | help for that object |