4 releases

new 0.1.3 May 21, 2025
0.1.2 May 21, 2025
0.1.1 May 21, 2025
0.1.0 May 21, 2025

#897 in Command-line interface

39 downloads per month

MIT license

15KB
243 lines

Rust CLI Parser Helper

cli-parser-helper is a lightweight and flexible library for parsing command-line arguments in Rust. It allows you to define CLI options with short and long forms, parse arguments, and retrieve their values or states. The library also generates a help message for your CLI application.

Features

  • Register CLI Options: Define options with short forms (e.g., -c), long forms (e.g., --count), and help text.
  • Parse Arguments: Parse command-line arguments and retrieve normal arguments or option values.
  • Check Option States: Determine if an option is enabled or retrieve its associated values.
  • Generate Help Text: Automatically generate a help message based on registered options, with a customizable header and footer.

Installation

Add the following to your Cargo.toml:

[dependencies]
cli-parser-helper = "0.1.3"

Usage

Here’s an example of how to use the library:

use cli_parser_helper::CliOptionParser;

fn main() {
    let mut parser = CliOptionParser::new(
        "My CLI Application".to_string(),
        "For more information, visit https://example.com".to_string(),
    );

    // Register options
    parser.register_option(
        Some("-c".to_string()),
        Some("--count".to_string()),
        "Print only the count of selected lines",
        "count",
    );

    parser.register_option(
        Some("-C".to_string()),
        Some("--context".to_string()),
        "Print NUM lines of output context when given with --context=NUM",
        "context",
    );

    // Parse arguments
    let args = parser.parse();

    // Check if options are enabled
    if parser.is_enabled("count") {
        println!("Count option is enabled with values: {:?}", parser["count"]);
    }

    if parser.is_enabled("context") {
        println!("Context option is enabled with values: {:?}", parser["context"]);
    }

    // Print normal arguments
    println!("Normal arguments: {:?}", args);

    // Print help text
    println!("{}", parser.help_text());
}

API Overview

CliOptionParser new(header: String, footer: String) -> CliOptionParser Creates a new parser with a customizable header and footer for the help text.

register_option(short_form: Option<String>, long_form: Option<String>, help_text: &str, name: &str) Registers a new CLI option with its short form, long form, help text, and name.

parse() -> Vec<String> Parses the command-line arguments and returns a list of normal arguments.

is_enabled(name: &str) -> bool Checks if the option with the given name is enabled.

get_option_values(name: &str) -> &Vec<String> Retrieves the values associated with the given option name.

help_text() -> String Generates and returns the help text for the CLI options.

Example Output

Given the following command-line input:

my_program -c123 --count=456 -C456 --context=712 normal_arg

The output would be:

Count option is enabled with values: ["123", "456"]
Context option is enabled with values: ["456", "712"]
Normal arguments: ["my_program", "normal_arg"]

My CLI Application

-c    --count         Print only the count of selected lines
-C    --context       Print NUM lines of output context when given with --context=NUM

For more information, visit https://example.com

Testing

Run the tests using cargo test

License

This project is licensed under the MIT License.

No runtime deps