Implement flag "resolvers". (#24)

* Propagate errors.
* Use junit test output.
* Expand role of DecodeContext to include Scanner.
* Inject resolved flags as Path elements in the Context.
  This allows all existing logic to apply seamlessly: hooks, required
flags, etc.
* Clarify that hooks can be called multiple times.
This commit is contained in:
Alec Thomas
2018-06-12 07:20:55 +10:00
committed by Gerald Kaszuba
parent 73064a687f
commit e9d88d6528
16 changed files with 579 additions and 58 deletions
+3
View File
@@ -65,6 +65,7 @@ func TestEscapedQuote(t *testing.T) {
}
func TestBareTags(t *testing.T) {
// nolint: govet
var cli struct {
Cmd struct {
Arg string `arg`
@@ -80,6 +81,7 @@ func TestBareTags(t *testing.T) {
}
func TestBareTagsWithJsonTag(t *testing.T) {
// nolint: govet
var cli struct {
Cmd struct {
Arg string `json:"-" optional arg`
@@ -95,6 +97,7 @@ func TestBareTagsWithJsonTag(t *testing.T) {
}
func TestManySeps(t *testing.T) {
// nolint: govet
var cli struct {
Arg string `arg optional default:"hi"`
}