Facilitates the process of creating complex command-line applications in Go.
You can see usage examples in the example/
folder in this repository.
Command line applications provide an easy to use interface for interacting with your application. Go has great support for making these types of applications built into the standard library via the flags package, but it doesn't really facilitate the development of complex command line applications.
This library is designed to help make more complex, safe console applications, in a consistent, simple, and easy to use way. It's designed to be lightweight, but powerful and configurable. Another goal of this library is to make it so that commands are easily testable.
There are still some things I'd like to get done with this library, as is reflected by the pre-v1.0 state. Here's a priority ordered todo list:
- Command groups.
- Documentation.
- Mutually exclusive options.
- More complete set of tests.
- More helpful
Input
type. - Test helpers.
- Multiple environment variables per-option.
MIT
Feel free to open a pull request, or file an issue on Github. I always welcome contributions as long as they're for the benefit of all (potential) users of this project.
If you're unsure about anything, feel free to ask about it in an issue before you get your heart set on fixing it yourself.