Clier
is a command line argument parser and command framework for rust.
To start a new cli projects run:
console
$ cargo new demo
$ cargo add clier
Then define your CLI in main.rs
:
```rust use clier::Argv; use clier::Clier;
fn main() { let args: Argv = Clier::parse().args; println!("{:#?}", args); }
```
And try it out: ```md
$ cargo run -- command subcommand --test=value --no-production --help --try-me=false Argv { commands: [ "command", "subcommand", ], flags: { "test": "value", "production": "false", "help": "true", "try-me": "false", }, } ```
```rust use clier::builder::{CmdArgs, RCommand}; use clier::error; use clier::hooks::use_flags; use clier::run::{ExitCode, Meta, Runnable}; use clier::Clier;
fn firstcommandhandler(args: CmdArgs) -> i32 {
let flags = use_flags(&args);
println!("{:?}", flags);
0
}
fn main() -> Result
let meta = Meta::new("clier-example-framework", "This is the description", "1.0.0"); let firstcommand = RCommand::new("first-command", "Command description", firstcommandhandler) .usage("test") .flag("tes", None, "testing") .subcommand("name", "descriptin", None, || { /* Code goes here / 0 / <- Exit code / }) .subcommand("andra", "descriptin", None, |_| { / Code goes here */ 0 });
clier.meta(&meta).command(first_command)?.run() } ```