xcli 0.5.2

xcli, a CLI implementation based on rustyline
Documentation
# 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
        ```