21 个版本 (6 个重大更改)

0.6.3 2020年7月1日
0.6.0 2020年6月29日

#4 in #intent

MIT 许可证

44KB
1K SLoC

命令行应用程序框架。

用法

命令行解析器将搜索以下模式

$ myapp <COMMAND> <FLAGS> <PARAMS> -- <TAIL>

一个简单的命令行应用程序可能看起来像这样

use rawcmd::{Context, Command, Flag, Intent};

fn main() {
    match Command::with_name("foo")
        .with_description("Command 1")
        .with_flag(
            Flag::with_name("flag1")
                .with_alias("f1")
                .with_description("Flag 1")
        )
        .with_param(
            Param::with_name("param1")
                .with_description("Param 1")
        )
        .with_subcommand(
            Command::with_name("bar")
                .with_description("Command 1:1")
                .with_flag(
                    Flag::with_name("flag2")
                        .with_alias("f2")
                        .with_description("Flag 2")
                )
                .with_resolver(|_intent, &mut _context| Ok(2))
        )
        .with_resolver(|_intent, &mut _context| Ok(3))
        .with_handler(|_error, _intent, &mut _context| Ok(4))
        .run(
            &mut Context::default(),
        )
    {
        Ok(code) => {
            println!("Success: {:?}", code);
            std::process::exit(0);
        },
        Err(error) => {
            println!("Error: {:?}", error);
            std::process::exit(1);
        },
    }
}

您还可以使用自己的自定义上下文对象

...
.run<MyContext>(
    MyContext::default()
)

无运行时依赖