https://github.com/pstolarz/cmdopts
GNU-like command line options parser in Rust
https://github.com/pstolarz/cmdopts
Last synced: 3 months ago
JSON representation
GNU-like command line options parser in Rust
- Host: GitHub
- URL: https://github.com/pstolarz/cmdopts
- Owner: pstolarz
- License: bsd-2-clause
- Created: 2023-05-20T20:47:13.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-12-15T21:44:23.000Z (7 months ago)
- Last Synced: 2025-04-12T04:13:55.712Z (3 months ago)
- Language: Rust
- Homepage:
- Size: 27.3 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://crates.io/crates/cmdopts)
[](https://github.com/pstolarz/cmdopts/actions/workflows/rust.yml)
[](https://docs.rs/cmdopts)# Command Line Options Parser
Simple command line parser in Rust.
`cmdopts` parses GNU-like command line options for long and short formats.
Optional argument (aka option's value) may be associated with an option.
The parsing routine `parse_opts()` accepts two user callbacks:
* `opt_i()` provides parser with a context the parsed option may be used,
* `opt_h()` is the actual handler of the option.The library doesn't interpret parsed options, rather passes them to the user's
handler to further processing. The idea is similar to `getopt(3)` and `getopt_long(3)`
routines.## Options Format
### Short format
All options starting with a single hyphen character `-` are short options. For
example: `-a -b -c` constitute 3 short options. These options may grouped into
a single block of options as `-abc`.If a short option requires an argument, the argument may be provided directly
after the option or separated by white-space(s): `-dARG` or `-d ARG`.If short options are grouped into a block, the last one may be provided with
an argument. For example: `-abcdARG` or `-abcd ARG` is equivalent to
`-a -b -c -d ARG`, where `-a` `-b` `-c` don't have an argument, while `-d`
does.### Long format
If an option starts with `--` it's long format option. For example `--help`.
Long options may not be formed into a group. An argument may be provided to
the long-format option directly after `=` character or followed by white-space(s):
`--config=FILE` or `--config FILE`.## Usage
See enclosed [`examples`](examples) for details.
## License
2 clause BSD license. See [`LICENSE`](LICENSE) file for details.