# xcli-rs A CLI implementation in Rust that is based on Rustyline. **Supported Platforms** * Unix * Windows * cmd.exe * Powershell * MacOS (not tested yet) **Note**: * " quoted argument is not supported * No prompt is shown when running on non-tty device. Need a simple tweak on Rustyline... ## Example ```no_run use xcli::*; let mut app = App::new("xCLI") .version("v0.1") .author("kingwel.xie@139.com"); app.add_subcommand(Command::new("qwert") .about("controls testing features") .usage("qwert") .action(|_app, _actions| -> XcliResult { println!("qwert tested"); Ok(CmdExeCode::Ok) })); app.run(); ``` ## crates.io You can use this package in your project by adding the following to your `Cargo.toml`: ```toml [dependencies] xcli = "0.5.1" ``` ## ChangeLog - 2020.12.31, v0.5.0 API changes. + Allow a user data to be registered into xCli APP, and it can be retrieved later by user specified CLI commands + Refactor xCliError to take more error types. + add_subcommand_with_userdata() for attaching userdata to CLI sub commands + example updated to reflect the new APIs - 2021.1.11, v0.5.1 + Command alias: command can have a short name ```no_run tree : tree mode : mode [vi|emacs] log, l : log [off|error|warn|info|debug|trace] help, h : help [command] exit : exit version, v : version ```