Expand description
CLI argument parser
This module provides the CliParser which parses Unix-style command-line
arguments into a structured HashMap. It handles:
- Positional arguments
- Short options (
-v) - Long options (
--verbose) - Options with values (
-o file.txt,--output=file.txt) - Type conversion and validation
§Example
use dynamic_cli::parser::cli_parser::CliParser;
use dynamic_cli::config::schema::{CommandDefinition, ArgumentDefinition, ArgumentType};
let definition = CommandDefinition {
name: "process".to_string(),
aliases: vec![],
description: "Process files".to_string(),
required: false,
arguments: vec![
ArgumentDefinition {
name: "input".to_string(),
arg_type: ArgumentType::Path,
required: true,
description: "Input file".to_string(),
validation: vec![],
}
],
options: vec![],
implementation: "handler".to_string(),
};
let parser = CliParser::new(&definition);
let args = vec!["file.txt".to_string()];
let parsed = parser.parse(&args).unwrap();
assert_eq!(parsed.get("input"), Some(&"file.txt".to_string()));Structs§
- CliParser
- CLI argument parser