Skip to main content

demo/
demo.rs

1use std::process::ExitCode;
2use tiny_args::*;
3
4fn main() -> ExitCode {
5    let mut args = TinyArgs::new();
6
7    // Optional help definitions:
8    args.define_help_program_name("demo");
9    args.define_help_description("A demo program for TinyArgs");
10    args.define_help_usage("[OPTIONS] [COMMAND] [ARGS]...");
11    args.define_help_example("--name=test some/path/  - Sets some values");
12
13    let list = args.define_command("list", "List vargs");
14    let version = args.define_command("version", "Display version");
15
16    let name = args.define_option_txt("name", None, "test", "A name of something");
17    let context = args.define_option_num("context", 'c', 4, "Context lines");
18    let verbose = args.define_option_bool("verbose", 'v', false, "Verbose mode");
19
20    if let Err(e) = args.parse_arguments() {
21        eprintln!("Error: {e}");
22        return ExitCode::FAILURE;
23    }
24
25    println!("name: {}", args.get_option(name));
26    println!("context: {}", args.get_option(context));
27    println!("verbose: {}", args.get_option(verbose));
28
29    if args.command() == version {
30        println!("Version: 1.2.3.4");
31    }
32
33    if args.command() == list {
34        for arg in args.get_va_args() {
35            println!("{arg}");
36        }
37    }
38
39    ExitCode::SUCCESS
40}