Add mow.cli, a library for building CLIs #612
Merged
+1
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A library for building CLI applications.
Why yet another CLI library ?
mow.cli comes with support for what you would expect from any decent CLI library: posix syntax, option groups, commands and sub commands, contextual help, ...
What sets it apart is a sophisticated call validation, by providing a spec string to specify how exactly a command should be called.
For example, here's the spec string you can use with mow.cli to define the call syntax of a
cp
like command:I've written 2 articles to explain in more details the why and how: 1, 2
mow.cli is fairly well tested (84% coverage), well documented (see godoc) and the code quality is not too bad either (A+ grade).