Update kingpin package to 2.2.6

This commit is contained in:
2018-05-06 14:07:12 +01:00
parent cf03ebb20b
commit c614bd9642
3 changed files with 21 additions and 4 deletions

View File

@@ -402,6 +402,9 @@ func (a *Application) setDefaults(context *ParseContext) error {
flagElements := map[string]*ParseElement{}
for _, element := range context.Elements {
if flag, ok := element.Clause.(*FlagClause); ok {
if flag.name == "help" {
return nil
}
flagElements[flag.name] = element
}
}

View File

@@ -153,6 +153,10 @@ func (p *ParseContext) EOL() bool {
return p.Peek().Type == TokenEOL
}
func (p *ParseContext) Error() bool {
return p.Peek().Type == TokenError
}
// Next token in the parse context.
func (p *ParseContext) Next() *Token {
if len(p.peek) > 0 {
@@ -266,9 +270,12 @@ func (p *ParseContext) matchedCmd(cmd *CmdClause) {
// Expand arguments from a file. Lines starting with # will be treated as comments.
func ExpandArgsFromFile(filename string) (out []string, err error) {
if filename == "" {
return nil, fmt.Errorf("expected @ file to expand arguments from")
}
r, err := os.Open(filename)
if err != nil {
return nil, err
return nil, fmt.Errorf("failed to open arguments file %q: %s", filename, err)
}
defer r.Close()
scanner := bufio.NewScanner(r)
@@ -280,6 +287,9 @@ func ExpandArgsFromFile(filename string) (out []string, err error) {
out = append(out, line)
}
err = scanner.Err()
if err != nil {
return nil, fmt.Errorf("failed to read arguments from %q: %s", filename, err)
}
return
}
@@ -291,7 +301,7 @@ func parse(context *ParseContext, app *Application) (err error) {
ignoreDefault := context.ignoreDefault
loop:
for !context.EOL() {
for !context.EOL() && !context.Error() {
token := context.Peek()
switch token.Type {
@@ -365,6 +375,10 @@ loop:
}
}
if context.Error() {
return fmt.Errorf("%s", context.Peek().Value)
}
if !context.EOL() {
return fmt.Errorf("unexpected %s", context.Peek())
}