Add support for repeated flags/options #21 #44
Merged
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.
Good day!
First of all, thanks for the library.
Periodically I use repeating flags to set the level of logging, so the problem of issue #21 is close to me.
The first commit adds this functionality. To do this, defined "type" Counter for the argument.
In some places, bool type checking is replaced by checking the size of the argument, because this parameter is common for flag and counter. This allows you to use them together when combining arguments into one.
func (o *arg) check(argument string) int - now returns integer, for counting of combined arguments. It's used by parse function to calculate the result for counter.
Second commit adds tests for counter.
The third commit performs testing and modifies the tests to check the arguments, combined into one for uniqueness, if necessary (also based on the results of the check function).