github.com/sercand/please@v13.4.0+incompatible/third_party/go/flags_subcommand.patch (about)

     1  diff --git a/parser.go b/parser.go
     2  index fd2fd5f..3af2af9 100644
     3  --- a/parser.go
     4  +++ b/parser.go
     5  @@ -633,10 +633,6 @@ func (p *parseState) addArgs(args ...string) error {
     6   }
     7   
     8   func (p *Parser) parseNonOption(s *parseState) error {
     9  -	if len(s.positional) > 0 {
    10  -		return s.addArgs(s.arg)
    11  -	}
    12  -
    13   	if len(s.command.commands) > 0 && len(s.retargs) == 0 {
    14   		if cmd := s.lookup.commands[s.arg]; cmd != nil {
    15   			s.command.Active = cmd
    16  @@ -649,6 +645,10 @@ func (p *Parser) parseNonOption(s *parseState) error {
    17   		}
    18   	}
    19   
    20  +	if len(s.positional) > 0 {
    21  +		return s.addArgs(s.arg)
    22  +	}
    23  +
    24   	if (p.Options & PassAfterNonOption) != None {
    25   		// If PassAfterNonOption is set then all remaining arguments
    26   		// are considered positional
    27  diff --git a/group.go b/group.go
    28  index 9341d23..7f269b2 100644
    29  --- a/group.go
    30  +++ b/group.go
    31  @@ -128,6 +128,11 @@ func (g *Group) FindOptionByShortName(shortName rune) *Option {
    32   	})
    33   }
    34   
    35  +// AddOption adds a new option to this group.
    36  +func (g *Group) AddOption(option *Option) {
    37  +	g.options = append(g.options, option)
    38  +}
    39  +
    40   func newGroup(shortDescription string, longDescription string, data interface{}) *Group {
    41   	return &Group{
    42   		ShortDescription: shortDescription,