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

4
Gopkg.lock generated
View File

@@ -19,8 +19,8 @@
[[projects]] [[projects]]
name = "gopkg.in/alecthomas/kingpin.v2" name = "gopkg.in/alecthomas/kingpin.v2"
packages = ["."] packages = ["."]
revision = "1087e65c9441605df944fb12c33f0fe7072d18ca" revision = "947dcec5ba9c011838740e680966fd7087a71d0d"
version = "v2.2.5" version = "v2.2.6"
[solve-meta] [solve-meta]
analyzer-name = "dep" analyzer-name = "dep"

View File

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

View File

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