0.2.0 Jan 17, 2020
0.1.0 Jan 13, 2020
0.0.3 Nov 26, 2019
0.0.2 Jul 26, 2019
0.0.1 Jul 24, 2019

#182 in #command-line-arguments


Used in kwrap

MIT license

10KB
172 lines

ace

GitHub Workflow Status Crates.io LICENSE

A simple command line parameter parsing library

Install

Add this in your Cargo.toml:

[dependencies]
ace = "0.2.0"

Example

use ace::App;

fn main() {
    let app = App::new()
        .config("app", env!("CARGO_PKG_VERSION"))
        .cmd("start", "Start now")
        .cmd("help", "Display help information")
        .cmd("version", "Display version information")
        .opt("--config", "Use configuration file")
        .opt("--duration", vec!["Set duration of test", "example (1ms, 1s, 1m, 1h, 1d)"])
        .opt("--timeout", "Set timeout");

    if let Some(cmd) = app.command() {
        match cmd.as_str() {
            "start" => {
                dbg!(app.value("--config"));
            }
            "help" => {
                app.print_help();
            }
            "version" => {
                app.print_version();
            }
            _ => {
                app.print_error_try("help");
            }
        }
    } else {
        dbg!(app.args());
    }
}

Output:

app version 0.2.0

Usage:
    app [COMMAND] [OPTION]
            
Command:
    start      Start now
    help       Display help information
    version    Display version information

Option:
    --config      Use configuration file
    --duration    Set duration of test
                  example (1ms, 1s, 1m, 1h, 1d)
    --timeout     Set timeout

No runtime deps