committed by
					
						
						Eric Paris
					
				
			
			
				
	
			
			
			
						parent
						
							24bb44aac8
						
					
				
				
					commit
					0960ff7fa9
				
			
							
								
								
									
										19
									
								
								command.go
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								command.go
									
									
									
									
									
								
							@ -356,7 +356,7 @@ Flags:
 | 
				
			|||||||
Global Flags:
 | 
					Global Flags:
 | 
				
			||||||
{{.InheritedFlags.FlagUsages | trimRightSpace}}{{end}}{{if .HasHelpSubCommands}}
 | 
					{{.InheritedFlags.FlagUsages | trimRightSpace}}{{end}}{{if .HasHelpSubCommands}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Additional help topics:{{range .Commands}}{{if .IsHelpCommand}}
 | 
					Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}
 | 
				
			||||||
  {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}
 | 
					  {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}}
 | 
					Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}}
 | 
				
			||||||
@ -1021,11 +1021,12 @@ func (c *Command) IsAvailableCommand() bool {
 | 
				
			|||||||
	return false
 | 
						return false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// IsHelpCommand determines if a command is a 'help' command; a help command is
 | 
					// IsAdditionalHelpTopicCommand determines if a command is an additional
 | 
				
			||||||
// determined by the fact that it is NOT runnable/hidden/deprecated, and has no
 | 
					// help topic command; additional help topic command is determined by the
 | 
				
			||||||
// sub commands that are runnable/hidden/deprecated.
 | 
					// fact that it is NOT runnable/hidden/deprecated, and has no sub commands that
 | 
				
			||||||
func (c *Command) IsHelpCommand() bool {
 | 
					// are runnable/hidden/deprecated.
 | 
				
			||||||
 | 
					// Concrete example: https://github.com/spf13/cobra/issues/393#issuecomment-282741924.
 | 
				
			||||||
 | 
					func (c *Command) IsAdditionalHelpTopicCommand() bool {
 | 
				
			||||||
	// if a command is runnable, deprecated, or hidden it is not a 'help' command
 | 
						// if a command is runnable, deprecated, or hidden it is not a 'help' command
 | 
				
			||||||
	if c.Runnable() || len(c.Deprecated) != 0 || c.Hidden {
 | 
						if c.Runnable() || len(c.Deprecated) != 0 || c.Hidden {
 | 
				
			||||||
		return false
 | 
							return false
 | 
				
			||||||
@ -1033,7 +1034,7 @@ func (c *Command) IsHelpCommand() bool {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// if any non-help sub commands are found, the command is not a 'help' command
 | 
						// if any non-help sub commands are found, the command is not a 'help' command
 | 
				
			||||||
	for _, sub := range c.commands {
 | 
						for _, sub := range c.commands {
 | 
				
			||||||
		if !sub.IsHelpCommand() {
 | 
							if !sub.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
			return false
 | 
								return false
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -1046,10 +1047,9 @@ func (c *Command) IsHelpCommand() bool {
 | 
				
			|||||||
// that need to be shown in the usage/help default template under 'additional help
 | 
					// that need to be shown in the usage/help default template under 'additional help
 | 
				
			||||||
// topics'.
 | 
					// topics'.
 | 
				
			||||||
func (c *Command) HasHelpSubCommands() bool {
 | 
					func (c *Command) HasHelpSubCommands() bool {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	// return true on the first found available 'help' sub command
 | 
						// return true on the first found available 'help' sub command
 | 
				
			||||||
	for _, sub := range c.commands {
 | 
						for _, sub := range c.commands {
 | 
				
			||||||
		if sub.IsHelpCommand() {
 | 
							if sub.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
			return true
 | 
								return true
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -1061,7 +1061,6 @@ func (c *Command) HasHelpSubCommands() bool {
 | 
				
			|||||||
// HasAvailableSubCommands determines if a command has available sub commands that
 | 
					// HasAvailableSubCommands determines if a command has available sub commands that
 | 
				
			||||||
// need to be shown in the usage/help default template under 'available commands'.
 | 
					// need to be shown in the usage/help default template under 'available commands'.
 | 
				
			||||||
func (c *Command) HasAvailableSubCommands() bool {
 | 
					func (c *Command) HasAvailableSubCommands() bool {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	// return true on the first found available (non deprecated/help/hidden)
 | 
						// return true on the first found available (non deprecated/help/hidden)
 | 
				
			||||||
	// sub command
 | 
						// sub command
 | 
				
			||||||
	for _, sub := range c.commands {
 | 
						for _, sub := range c.commands {
 | 
				
			||||||
 | 
				
			|||||||
@ -49,7 +49,7 @@ func GenManTreeFromOpts(cmd *cobra.Command, opts GenManTreeOptions) error {
 | 
				
			|||||||
		header = &GenManHeader{}
 | 
							header = &GenManHeader{}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	for _, c := range cmd.Commands() {
 | 
						for _, c := range cmd.Commands() {
 | 
				
			||||||
		if !c.IsAvailableCommand() || c.IsHelpCommand() {
 | 
							if !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if err := GenManTreeFromOpts(c, opts); err != nil {
 | 
							if err := GenManTreeFromOpts(c, opts); err != nil {
 | 
				
			||||||
@ -216,7 +216,7 @@ func genMan(cmd *cobra.Command, header *GenManHeader) []byte {
 | 
				
			|||||||
		children := cmd.Commands()
 | 
							children := cmd.Commands()
 | 
				
			||||||
		sort.Sort(byName(children))
 | 
							sort.Sort(byName(children))
 | 
				
			||||||
		for _, c := range children {
 | 
							for _, c := range children {
 | 
				
			||||||
			if !c.IsAvailableCommand() || c.IsHelpCommand() {
 | 
								if !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
				continue
 | 
									continue
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			seealso := fmt.Sprintf("**%s-%s(%s)**", dashCommandName, c.Name(), header.Section)
 | 
								seealso := fmt.Sprintf("**%s-%s(%s)**", dashCommandName, c.Name(), header.Section)
 | 
				
			||||||
 | 
				
			|||||||
@ -119,7 +119,7 @@ func GenMarkdownCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string)
 | 
				
			|||||||
		sort.Sort(byName(children))
 | 
							sort.Sort(byName(children))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for _, child := range children {
 | 
							for _, child := range children {
 | 
				
			||||||
			if !child.IsAvailableCommand() || child.IsHelpCommand() {
 | 
								if !child.IsAvailableCommand() || child.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
				continue
 | 
									continue
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			cname := name + " " + child.Name()
 | 
								cname := name + " " + child.Name()
 | 
				
			||||||
@ -149,7 +149,7 @@ func GenMarkdownTree(cmd *cobra.Command, dir string) error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func GenMarkdownTreeCustom(cmd *cobra.Command, dir string, filePrepender, linkHandler func(string) string) error {
 | 
					func GenMarkdownTreeCustom(cmd *cobra.Command, dir string, filePrepender, linkHandler func(string) string) error {
 | 
				
			||||||
	for _, c := range cmd.Commands() {
 | 
						for _, c := range cmd.Commands() {
 | 
				
			||||||
		if !c.IsAvailableCommand() || c.IsHelpCommand() {
 | 
							if !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if err := GenMarkdownTreeCustom(c, dir, filePrepender, linkHandler); err != nil {
 | 
							if err := GenMarkdownTreeCustom(c, dir, filePrepender, linkHandler); err != nil {
 | 
				
			||||||
 | 
				
			|||||||
@ -27,7 +27,7 @@ func hasSeeAlso(cmd *cobra.Command) bool {
 | 
				
			|||||||
		return true
 | 
							return true
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	for _, c := range cmd.Commands() {
 | 
						for _, c := range cmd.Commands() {
 | 
				
			||||||
		if !c.IsAvailableCommand() || c.IsHelpCommand() {
 | 
							if !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return true
 | 
							return true
 | 
				
			||||||
 | 
				
			|||||||
@ -57,7 +57,7 @@ func GenYamlTree(cmd *cobra.Command, dir string) error {
 | 
				
			|||||||
// GenYamlTreeCustom creates yaml structured ref files
 | 
					// GenYamlTreeCustom creates yaml structured ref files
 | 
				
			||||||
func GenYamlTreeCustom(cmd *cobra.Command, dir string, filePrepender, linkHandler func(string) string) error {
 | 
					func GenYamlTreeCustom(cmd *cobra.Command, dir string, filePrepender, linkHandler func(string) string) error {
 | 
				
			||||||
	for _, c := range cmd.Commands() {
 | 
						for _, c := range cmd.Commands() {
 | 
				
			||||||
		if !c.IsAvailableCommand() || c.IsHelpCommand() {
 | 
							if !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if err := GenYamlTreeCustom(c, dir, filePrepender, linkHandler); err != nil {
 | 
							if err := GenYamlTreeCustom(c, dir, filePrepender, linkHandler); err != nil {
 | 
				
			||||||
@ -117,7 +117,7 @@ func GenYamlCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) str
 | 
				
			|||||||
		children := cmd.Commands()
 | 
							children := cmd.Commands()
 | 
				
			||||||
		sort.Sort(byName(children))
 | 
							sort.Sort(byName(children))
 | 
				
			||||||
		for _, child := range children {
 | 
							for _, child := range children {
 | 
				
			||||||
			if !child.IsAvailableCommand() || child.IsHelpCommand() {
 | 
								if !child.IsAvailableCommand() || child.IsAdditionalHelpTopicCommand() {
 | 
				
			||||||
				continue
 | 
									continue
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			result = append(result, child.Name()+" - "+child.Short)
 | 
								result = append(result, child.Name()+" - "+child.Short)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user