func (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, name string) flag.NormalizedName) {
	c.Flags().SetNormalizeFunc(n)
	c.PersistentFlags().SetNormalizeFunc(n)
	c.LocalFlags().SetNormalizeFunc(n)
	c.globNormFunc = n
	for _, command := range c.commands {
		command.SetGlobalNormalizationFunc(n)
	}
}
SetGlobalNormalizationFunc sets a normalization function to all flag sets and also to child commands.
The user should not have a cyclic dependency on commands.
package cobra
import (
	"bytes"
	"fmt"
	"io"
	"os"
	"runtime"
	"strings"
	"time"
	"github.com/inconshreveable/mousetrap"
	flag "github.com/spf13/pflag"
)
type Command struct {
	name string
	Use string
	Aliases []string
	Short string
	Long string
	Example string
	ValidArgs []string
	BashCompletionFunction string
	Deprecated string
	flags *flag.FlagSet
	pflags *flag.FlagSet
	lflags *flag.FlagSet
	PersistentPreRun func(cmd *Command, args []string)
	PreRun func(cmd *Command, args []string)
	Run func(cmd *Command, args []string)
	PostRun func(cmd *Command, args []string)
	PersistentPostRun func(cmd *Command, args []string)
	commands []*Command
	parent *Command
	commandsMaxUseLen         int
	commandsMaxCommandPathLen int
	commandsMaxNameLen        int
	flagErrorBuf *bytes.Buffer
	cmdErrorBuf  *bytes.Buffer
	args          []string                  
	output        *io.Writer                
	usageFunc     func(*Command) error      
	usageTemplate string                    
	helpTemplate  string                    
	helpFunc      func(*Command, []string)  
	helpCommand   *Command                  
	helpFlagVal   bool
	globNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName
}
func (c *Command) SetArgs(a []string) {
	c.args = a
}
func (c *Command) getOut(def io.Writer) io.Writer {
	if c.output != nil {
		return *c.output
	}
	if c.HasParent() {
		return c.parent.Out()
	} else {
		return def
	}
}
func (c *Command) Out() io.Writer {
	return c.getOut(os.Stderr)
}
func (c *Command) getOutOrStdout() io.Writer {
	return c.getOut(os.Stdout)
}
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) 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
}