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
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.