func (c *Command) Help() error {
	c.HelpFunc()(c, []string{})
	return nil
}
Help puts out the help for the command.
Used when a user calls help [command].
Can be defined by user by overriding HelpFunc.
package cobra
import (
	"bytes"
	"fmt"
	"io"
	"os"
	"path/filepath"
	"sort"
	"strings"
	flag "github.com/spf13/pflag"
)
type FParseErrWhitelist flag.ParseErrorsWhitelist
type Command struct {
	Use string
	Aliases []string
	SuggestFor []string
	Short string
	Long string
	Example string
	ValidArgs []string
	Args PositionalArgs
	ArgAliases []string
	BashCompletionFunction string
	Deprecated string
	Hidden bool
	Annotations map[string]string
	Version string
	PersistentPreRun func(cmd *Command, args []string)
	PersistentPreRunE func(cmd *Command, args []string) error
	PreRun func(cmd *Command, args []string)
	PreRunE func(cmd *Command, args []string) error
	Run func(cmd *Command, args []string)
	RunE func(cmd *Command, args []string) error
	PostRun func(cmd *Command, args []string)
	PostRunE func(cmd *Command, args []string) error
	PersistentPostRun func(cmd *Command, args []string)
	PersistentPostRunE func(cmd *Command, args []string) error
	SilenceErrors bool
	SilenceUsage bool
	DisableFlagParsing bool
	DisableAutoGenTag bool
	DisableFlagsInUseLine bool
	DisableSuggestions bool
	SuggestionsMinimumDistance int
	TraverseChildren bool
	FParseErrWhitelist FParseErrWhitelist
	commands []*Command
	parent *Command
	commandsMaxUseLen         int
	commandsMaxCommandPathLen int
	commandsMaxNameLen        int
	commandsAreSorted bool
	commandCalledAs struct {
		name   string
		called bool
	}
	args []string
	flagErrorBuf *bytes.Buffer
	flags *flag.FlagSet
	pflags *flag.FlagSet
	lflags *flag.FlagSet
	iflags *flag.FlagSet
	parentsPflags *flag.FlagSet
	globNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName
	output io.Writer
	usageFunc func(*Command) error
	usageTemplate string
	flagErrorFunc func(*Command, error) error
	helpTemplate string
	helpFunc func(*Command, []string)
	helpCommand *Command
	versionTemplate string
}
func (c *Command) SetArgs(a []string) {
	c.args = a
}
func (c *Command) SetOutput(output io.Writer) {
	c.output = output
}
func (c *Command) SetUsageFunc(f func(*Command) error) {
	c.usageFunc = f
}
func (c *Command) SetUsageTemplate(s string) {
	c.usageTemplate = s
}
func (c *Command) SetFlagErrorFunc(f func(*Command, error) error) {
	c.flagErrorFunc = f
}
func (c *Command) SetHelpFunc(f func(*Command, []string)) {
	c.helpFunc = f
}
func (c *Command) SetHelpCommand(cmd *Command) {
	c.helpCommand = cmd
}
func (c *Command) SetHelpTemplate(s string) {
	c.helpTemplate = s
}
func (c *Command) SetVersionTemplate(s string) {
	c.versionTemplate = s
}
func (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, name string) flag.NormalizedName) {
	c.Flags().SetNormalizeFunc(n)
	c.PersistentFlags().SetNormalizeFunc(n)
	c.globNormFunc = n
	for _, command := range c.commands {
		command.SetGlobalNormalizationFunc(n)
	}
}
func (c *Command) OutOrStdout() io.Writer {
	return c.getOut(os.Stdout)
}
func (c *Command) OutOrStderr() io.Writer {
	return c.getOut(os.Stderr)
}
func (c *Command) getOut(def io.Writer) io.Writer {
	if c.output != nil {
		return c.output
	}
	if c.HasParent() {
		return c.parent.getOut(def)
	}
	return def
}
func (c *Command) UsageFunc() (f func(*Command) error) {
	if c.usageFunc != nil {
		return c.usageFunc
	}
	if c.HasParent() {
		return c.Parent().UsageFunc()
	}
	return func(c *Command) error {
		c.mergePersistentFlags()
		err := tmpl(c.OutOrStderr(), c.UsageTemplate(), c)
		if err != nil {
			c.Println(err)
		}
		return err
	}
}
func (c *Command) Usage() error {
	return c.UsageFunc()(c)
}
func (c *Command) HelpFunc() func(*Command, []string) {
	if c.helpFunc != nil {
		return c.helpFunc
	}
	if c.HasParent() {
		return c.Parent().HelpFunc()
	}
	return func(c *Command, a []string) {
		c.mergePersistentFlags()
		err := tmpl(c.OutOrStdout(), c.HelpTemplate(), c)
		if err != nil {
			c.Println(err)
		}
	}
}