Remove some wonky error handling, as upstream seems correct now.
Also, it's buggy for nested commands.
This commit is contained in:
		
							
								
								
									
										23
									
								
								command.go
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								command.go
									
									
									
									
									
								
							@ -262,8 +262,12 @@ func isBooleanFlag(name string, f *flag.FlagSet) bool {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Test if the named flag is a boolean flag.
 | 
					// Test if the named flag is a boolean flag.
 | 
				
			||||||
func isBooleanShortFlag(name string, f *flag.FlagSet) bool {
 | 
					func isBooleanShortFlag(name string, f *flag.FlagSet) bool {
 | 
				
			||||||
     	result := false
 | 
						result := false
 | 
				
			||||||
	f.VisitAll(func (f *flag.Flag) { if f.Shorthand == name && f.Value.Type() == "bool" { result = true } })
 | 
						f.VisitAll(func(f *flag.Flag) {
 | 
				
			||||||
 | 
							if f.Shorthand == name && f.Value.Type() == "bool" {
 | 
				
			||||||
 | 
								result = true
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
	return result
 | 
						return result
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -399,7 +403,10 @@ func (c *Command) execute(a []string) (err error) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = c.ParseFlags(a)
 | 
						err = c.ParseFlags(a)
 | 
				
			||||||
 | 
						if err == flag.ErrHelp {
 | 
				
			||||||
 | 
							c.Help()
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		// We're writing subcommand usage to root command's error buffer to have it displayed to the user
 | 
							// We're writing subcommand usage to root command's error buffer to have it displayed to the user
 | 
				
			||||||
		r := c.Root()
 | 
							r := c.Root()
 | 
				
			||||||
@ -519,9 +526,13 @@ func (c *Command) Execute() (err error) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		c.Println("Error:", err.Error())
 | 
							if err == flag.ErrHelp {
 | 
				
			||||||
		c.Printf("%v: invalid command %#q\n", c.Root().Name(), os.Args[1:])
 | 
								c.Help()
 | 
				
			||||||
		c.Printf("Run '%v help' for usage\n", c.Root().Name())
 | 
							} else {
 | 
				
			||||||
 | 
								c.Println("Error:", err.Error())
 | 
				
			||||||
 | 
								c.Printf("%v: invalid command %#q\n", c.Root().Name(), os.Args[1:])
 | 
				
			||||||
 | 
								c.Printf("Run '%v help' for usage\n", c.Root().Name())
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user