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...
use xcli::*;
let mut app = App::new("xCLI")
.version("v0.1")
.author("[email protected]");
app.add_subcommand(Command::new("qwert")
.about("controls testing features")
.usage("qwert")
.action(|_app, _actions| -> XcliResult {
println!("qwert tested");
Ok(CmdExeCode::Ok)
}));
app.run();
You can use this package in your project by adding the following
to your Cargo.toml
:
[dependencies]
xcli = "0.5.2"
-
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
tree : tree mode : mode [vi|emacs] log, l : log [off|error|warn|info|debug|trace] help, h : help [command] exit : exit version, v : version
- Command alias: command can have a short name
-
2021.1.25, v0.5.2
- Add macro
check_param!
to support type conversion.
- Add macro