mirror of
				https://github.com/kardolus/chatgpt-cli.git
				synced 2024-09-08 23:15:00 +03:00 
			
		
		
		
	Merge pull request #53 from kardolus/dependabot/go_modules/github.com/spf13/cobra-1.8.1
Bump github.com/spf13/cobra from 1.8.0 to 1.8.1
This commit is contained in:
		
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @@ -7,7 +7,7 @@ require ( | ||||
| 	github.com/golang/mock v1.6.0 | ||||
| 	github.com/onsi/gomega v1.33.1 | ||||
| 	github.com/sclevine/spec v1.4.0 | ||||
| 	github.com/spf13/cobra v1.8.0 | ||||
| 	github.com/spf13/cobra v1.8.1 | ||||
| 	github.com/spf13/viper v1.19.0 | ||||
| 	gopkg.in/yaml.v3 v3.0.1 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										6
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								go.sum
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI | ||||
| github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= | ||||
| github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= | ||||
| github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= | ||||
| @@ -59,8 +59,8 @@ github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= | ||||
| github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= | ||||
| github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= | ||||
| github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= | ||||
| github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= | ||||
| github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= | ||||
| github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= | ||||
| github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= | ||||
| github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= | ||||
| github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= | ||||
| github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= | ||||
|   | ||||
							
								
								
									
										21
									
								
								vendor/github.com/spf13/cobra/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/spf13/cobra/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -26,33 +26,28 @@ linters: | ||||
|     - errcheck | ||||
|     #- exhaustive | ||||
|     #- funlen | ||||
|     - gas | ||||
|     #- gochecknoinits | ||||
|     - goconst | ||||
|     #- gocritic | ||||
|     - gocritic | ||||
|     #- gocyclo | ||||
|     #- gofmt | ||||
|     - gofmt | ||||
|     - goimports | ||||
|     - golint | ||||
|     #- gomnd | ||||
|     #- goprintffuncname | ||||
|     #- gosec | ||||
|     #- gosimple | ||||
|     - gosec | ||||
|     - gosimple | ||||
|     - govet | ||||
|     - ineffassign | ||||
|     - interfacer | ||||
|     #- lll | ||||
|     - maligned | ||||
|     - megacheck | ||||
|     #- misspell | ||||
|     - misspell | ||||
|     #- nakedret | ||||
|     #- noctx | ||||
|     #- nolintlint | ||||
|     - nolintlint | ||||
|     #- rowserrcheck | ||||
|     #- scopelint | ||||
|     #- staticcheck | ||||
|     - staticcheck | ||||
|     #- structcheck ! deprecated since v1.49.0; replaced by 'unused' | ||||
|     #- stylecheck | ||||
|     - stylecheck | ||||
|     #- typecheck | ||||
|     - unconvert | ||||
|     #- unparam | ||||
|   | ||||
							
								
								
									
										13
									
								
								vendor/github.com/spf13/cobra/active_help.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/spf13/cobra/active_help.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,21 +17,17 @@ package cobra | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"regexp" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	activeHelpMarker = "_activeHelp_ " | ||||
| 	// The below values should not be changed: programs will be using them explicitly | ||||
| 	// in their user documentation, and users will be using them explicitly. | ||||
| 	activeHelpEnvVarSuffix  = "_ACTIVE_HELP" | ||||
| 	activeHelpGlobalEnvVar  = "COBRA_ACTIVE_HELP" | ||||
| 	activeHelpEnvVarSuffix  = "ACTIVE_HELP" | ||||
| 	activeHelpGlobalEnvVar  = configEnvVarGlobalPrefix + "_" + activeHelpEnvVarSuffix | ||||
| 	activeHelpGlobalDisable = "0" | ||||
| ) | ||||
|  | ||||
| var activeHelpEnvVarPrefixSubstRegexp = regexp.MustCompile(`[^A-Z0-9_]`) | ||||
|  | ||||
| // AppendActiveHelp adds the specified string to the specified array to be used as ActiveHelp. | ||||
| // Such strings will be processed by the completion script and will be shown as ActiveHelp | ||||
| // to the user. | ||||
| @@ -60,8 +56,5 @@ func GetActiveHelpConfig(cmd *Command) string { | ||||
| // variable.  It has the format <PROGRAM>_ACTIVE_HELP where <PROGRAM> is the name of the | ||||
| // root command in upper case, with all non-ASCII-alphanumeric characters replaced by `_`. | ||||
| func activeHelpEnvVar(name string) string { | ||||
| 	// This format should not be changed: users will be using it explicitly. | ||||
| 	activeHelpEnvVar := strings.ToUpper(fmt.Sprintf("%s%s", name, activeHelpEnvVarSuffix)) | ||||
| 	activeHelpEnvVar = activeHelpEnvVarPrefixSubstRegexp.ReplaceAllString(activeHelpEnvVar, "_") | ||||
| 	return activeHelpEnvVar | ||||
| 	return configEnvVar(name, activeHelpEnvVarSuffix) | ||||
| } | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/spf13/cobra/args.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/spf13/cobra/args.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -52,9 +52,9 @@ func OnlyValidArgs(cmd *Command, args []string) error { | ||||
| 	if len(cmd.ValidArgs) > 0 { | ||||
| 		// Remove any description that may be included in ValidArgs. | ||||
| 		// A description is following a tab character. | ||||
| 		var validArgs []string | ||||
| 		validArgs := make([]string, 0, len(cmd.ValidArgs)) | ||||
| 		for _, v := range cmd.ValidArgs { | ||||
| 			validArgs = append(validArgs, strings.Split(v, "\t")[0]) | ||||
| 			validArgs = append(validArgs, strings.SplitN(v, "\t", 2)[0]) | ||||
| 		} | ||||
| 		for _, v := range args { | ||||
| 			if !stringInSlice(v, validArgs) { | ||||
|   | ||||
							
								
								
									
										23
									
								
								vendor/github.com/spf13/cobra/bash_completions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								vendor/github.com/spf13/cobra/bash_completions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -597,19 +597,16 @@ func writeRequiredFlag(buf io.StringWriter, cmd *Command) { | ||||
| 		if nonCompletableFlag(flag) { | ||||
| 			return | ||||
| 		} | ||||
| 		for key := range flag.Annotations { | ||||
| 			switch key { | ||||
| 			case BashCompOneRequiredFlag: | ||||
| 				format := "    must_have_one_flag+=(\"--%s" | ||||
| 				if flag.Value.Type() != "bool" { | ||||
| 					format += "=" | ||||
| 				} | ||||
| 				format += cbn | ||||
| 				WriteStringAndCheck(buf, fmt.Sprintf(format, flag.Name)) | ||||
| 		if _, ok := flag.Annotations[BashCompOneRequiredFlag]; ok { | ||||
| 			format := "    must_have_one_flag+=(\"--%s" | ||||
| 			if flag.Value.Type() != "bool" { | ||||
| 				format += "=" | ||||
| 			} | ||||
| 			format += cbn | ||||
| 			WriteStringAndCheck(buf, fmt.Sprintf(format, flag.Name)) | ||||
|  | ||||
| 				if len(flag.Shorthand) > 0 { | ||||
| 					WriteStringAndCheck(buf, fmt.Sprintf("    must_have_one_flag+=(\"-%s"+cbn, flag.Shorthand)) | ||||
| 				} | ||||
| 			if len(flag.Shorthand) > 0 { | ||||
| 				WriteStringAndCheck(buf, fmt.Sprintf("    must_have_one_flag+=(\"-%s"+cbn, flag.Shorthand)) | ||||
| 			} | ||||
| 		} | ||||
| 	}) | ||||
| @@ -621,7 +618,7 @@ func writeRequiredNouns(buf io.StringWriter, cmd *Command) { | ||||
| 	for _, value := range cmd.ValidArgs { | ||||
| 		// Remove any description that may be included following a tab character. | ||||
| 		// Descriptions are not supported by bash completion. | ||||
| 		value = strings.Split(value, "\t")[0] | ||||
| 		value = strings.SplitN(value, "\t", 2)[0] | ||||
| 		WriteStringAndCheck(buf, fmt.Sprintf("    must_have_one_noun+=(%q)\n", value)) | ||||
| 	} | ||||
| 	if cmd.ValidArgsFunction != nil { | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/spf13/cobra/cobra.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/spf13/cobra/cobra.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -193,8 +193,6 @@ func ld(s, t string, ignoreCase bool) int { | ||||
| 	d := make([][]int, len(s)+1) | ||||
| 	for i := range d { | ||||
| 		d[i] = make([]int, len(t)+1) | ||||
| 	} | ||||
| 	for i := range d { | ||||
| 		d[i][0] = i | ||||
| 	} | ||||
| 	for j := range d[0] { | ||||
|   | ||||
							
								
								
									
										51
									
								
								vendor/github.com/spf13/cobra/command.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										51
									
								
								vendor/github.com/spf13/cobra/command.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -154,8 +154,10 @@ type Command struct { | ||||
| 	// pflags contains persistent flags. | ||||
| 	pflags *flag.FlagSet | ||||
| 	// lflags contains local flags. | ||||
| 	// This field does not represent internal state, it's used as a cache to optimise LocalFlags function call | ||||
| 	lflags *flag.FlagSet | ||||
| 	// iflags contains inherited flags. | ||||
| 	// This field does not represent internal state, it's used as a cache to optimise InheritedFlags function call | ||||
| 	iflags *flag.FlagSet | ||||
| 	// parentsPflags is all persistent flags of cmd's parents. | ||||
| 	parentsPflags *flag.FlagSet | ||||
| @@ -706,7 +708,7 @@ Loop: | ||||
| 			// This is not a flag or a flag value. Check to see if it matches what we're looking for, and if so, | ||||
| 			// return the args, excluding the one at this position. | ||||
| 			if s == x { | ||||
| 				ret := []string{} | ||||
| 				ret := make([]string, 0, len(args)-1) | ||||
| 				ret = append(ret, args[:pos]...) | ||||
| 				ret = append(ret, args[pos+1:]...) | ||||
| 				return ret | ||||
| @@ -754,14 +756,14 @@ func (c *Command) findSuggestions(arg string) string { | ||||
| 	if c.SuggestionsMinimumDistance <= 0 { | ||||
| 		c.SuggestionsMinimumDistance = 2 | ||||
| 	} | ||||
| 	suggestionsString := "" | ||||
| 	var sb strings.Builder | ||||
| 	if suggestions := c.SuggestionsFor(arg); len(suggestions) > 0 { | ||||
| 		suggestionsString += "\n\nDid you mean this?\n" | ||||
| 		sb.WriteString("\n\nDid you mean this?\n") | ||||
| 		for _, s := range suggestions { | ||||
| 			suggestionsString += fmt.Sprintf("\t%v\n", s) | ||||
| 			_, _ = fmt.Fprintf(&sb, "\t%v\n", s) | ||||
| 		} | ||||
| 	} | ||||
| 	return suggestionsString | ||||
| 	return sb.String() | ||||
| } | ||||
|  | ||||
| func (c *Command) findNext(next string) *Command { | ||||
| @@ -873,7 +875,7 @@ func (c *Command) ArgsLenAtDash() int { | ||||
|  | ||||
| func (c *Command) execute(a []string) (err error) { | ||||
| 	if c == nil { | ||||
| 		return fmt.Errorf("Called Execute() on a nil Command") | ||||
| 		return fmt.Errorf("called Execute() on a nil Command") | ||||
| 	} | ||||
|  | ||||
| 	if len(c.Deprecated) > 0 { | ||||
| @@ -1187,10 +1189,11 @@ func (c *Command) InitDefaultHelpFlag() { | ||||
| 	c.mergePersistentFlags() | ||||
| 	if c.Flags().Lookup("help") == nil { | ||||
| 		usage := "help for " | ||||
| 		if c.Name() == "" { | ||||
| 		name := c.displayName() | ||||
| 		if name == "" { | ||||
| 			usage += "this command" | ||||
| 		} else { | ||||
| 			usage += c.Name() | ||||
| 			usage += name | ||||
| 		} | ||||
| 		c.Flags().BoolP("help", "h", false, usage) | ||||
| 		_ = c.Flags().SetAnnotation("help", FlagSetByCobraAnnotation, []string{"true"}) | ||||
| @@ -1236,7 +1239,7 @@ func (c *Command) InitDefaultHelpCmd() { | ||||
| 			Use:   "help [command]", | ||||
| 			Short: "Help about any command", | ||||
| 			Long: `Help provides help for any command in the application. | ||||
| Simply type ` + c.Name() + ` help [path to command] for full details.`, | ||||
| Simply type ` + c.displayName() + ` help [path to command] for full details.`, | ||||
| 			ValidArgsFunction: func(c *Command, args []string, toComplete string) ([]string, ShellCompDirective) { | ||||
| 				var completions []string | ||||
| 				cmd, _, e := c.Root().Find(args) | ||||
| @@ -1427,6 +1430,10 @@ func (c *Command) CommandPath() string { | ||||
| 	if c.HasParent() { | ||||
| 		return c.Parent().CommandPath() + " " + c.Name() | ||||
| 	} | ||||
| 	return c.displayName() | ||||
| } | ||||
|  | ||||
| func (c *Command) displayName() string { | ||||
| 	if displayName, ok := c.Annotations[CommandDisplayNameAnnotation]; ok { | ||||
| 		return displayName | ||||
| 	} | ||||
| @@ -1436,10 +1443,11 @@ func (c *Command) CommandPath() string { | ||||
| // UseLine puts out the full usage for a given command (including parents). | ||||
| func (c *Command) UseLine() string { | ||||
| 	var useline string | ||||
| 	use := strings.Replace(c.Use, c.Name(), c.displayName(), 1) | ||||
| 	if c.HasParent() { | ||||
| 		useline = c.parent.CommandPath() + " " + c.Use | ||||
| 		useline = c.parent.CommandPath() + " " + use | ||||
| 	} else { | ||||
| 		useline = c.Use | ||||
| 		useline = use | ||||
| 	} | ||||
| 	if c.DisableFlagsInUseLine { | ||||
| 		return useline | ||||
| @@ -1452,7 +1460,6 @@ func (c *Command) UseLine() string { | ||||
|  | ||||
| // DebugFlags used to determine which flags have been assigned to which commands | ||||
| // and which persist. | ||||
| // nolint:goconst | ||||
| func (c *Command) DebugFlags() { | ||||
| 	c.Println("DebugFlags called on", c.Name()) | ||||
| 	var debugflags func(*Command) | ||||
| @@ -1642,7 +1649,7 @@ func (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name string) f | ||||
| // to this command (local and persistent declared here and by all parents). | ||||
| func (c *Command) Flags() *flag.FlagSet { | ||||
| 	if c.flags == nil { | ||||
| 		c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) | ||||
| 		c.flags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) | ||||
| 		if c.flagErrorBuf == nil { | ||||
| 			c.flagErrorBuf = new(bytes.Buffer) | ||||
| 		} | ||||
| @@ -1653,10 +1660,11 @@ func (c *Command) Flags() *flag.FlagSet { | ||||
| } | ||||
|  | ||||
| // LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands. | ||||
| // This function does not modify the flags of the current command, it's purpose is to return the current state. | ||||
| func (c *Command) LocalNonPersistentFlags() *flag.FlagSet { | ||||
| 	persistentFlags := c.PersistentFlags() | ||||
|  | ||||
| 	out := flag.NewFlagSet(c.Name(), flag.ContinueOnError) | ||||
| 	out := flag.NewFlagSet(c.displayName(), flag.ContinueOnError) | ||||
| 	c.LocalFlags().VisitAll(func(f *flag.Flag) { | ||||
| 		if persistentFlags.Lookup(f.Name) == nil { | ||||
| 			out.AddFlag(f) | ||||
| @@ -1666,11 +1674,12 @@ func (c *Command) LocalNonPersistentFlags() *flag.FlagSet { | ||||
| } | ||||
|  | ||||
| // LocalFlags returns the local FlagSet specifically set in the current command. | ||||
| // This function does not modify the flags of the current command, it's purpose is to return the current state. | ||||
| func (c *Command) LocalFlags() *flag.FlagSet { | ||||
| 	c.mergePersistentFlags() | ||||
|  | ||||
| 	if c.lflags == nil { | ||||
| 		c.lflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) | ||||
| 		c.lflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) | ||||
| 		if c.flagErrorBuf == nil { | ||||
| 			c.flagErrorBuf = new(bytes.Buffer) | ||||
| 		} | ||||
| @@ -1693,11 +1702,12 @@ func (c *Command) LocalFlags() *flag.FlagSet { | ||||
| } | ||||
|  | ||||
| // InheritedFlags returns all flags which were inherited from parent commands. | ||||
| // This function does not modify the flags of the current command, it's purpose is to return the current state. | ||||
| func (c *Command) InheritedFlags() *flag.FlagSet { | ||||
| 	c.mergePersistentFlags() | ||||
|  | ||||
| 	if c.iflags == nil { | ||||
| 		c.iflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) | ||||
| 		c.iflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) | ||||
| 		if c.flagErrorBuf == nil { | ||||
| 			c.flagErrorBuf = new(bytes.Buffer) | ||||
| 		} | ||||
| @@ -1718,6 +1728,7 @@ func (c *Command) InheritedFlags() *flag.FlagSet { | ||||
| } | ||||
|  | ||||
| // NonInheritedFlags returns all flags which were not inherited from parent commands. | ||||
| // This function does not modify the flags of the current command, it's purpose is to return the current state. | ||||
| func (c *Command) NonInheritedFlags() *flag.FlagSet { | ||||
| 	return c.LocalFlags() | ||||
| } | ||||
| @@ -1725,7 +1736,7 @@ func (c *Command) NonInheritedFlags() *flag.FlagSet { | ||||
| // PersistentFlags returns the persistent FlagSet specifically set in the current command. | ||||
| func (c *Command) PersistentFlags() *flag.FlagSet { | ||||
| 	if c.pflags == nil { | ||||
| 		c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) | ||||
| 		c.pflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) | ||||
| 		if c.flagErrorBuf == nil { | ||||
| 			c.flagErrorBuf = new(bytes.Buffer) | ||||
| 		} | ||||
| @@ -1738,9 +1749,9 @@ func (c *Command) PersistentFlags() *flag.FlagSet { | ||||
| func (c *Command) ResetFlags() { | ||||
| 	c.flagErrorBuf = new(bytes.Buffer) | ||||
| 	c.flagErrorBuf.Reset() | ||||
| 	c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) | ||||
| 	c.flags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) | ||||
| 	c.flags.SetOutput(c.flagErrorBuf) | ||||
| 	c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) | ||||
| 	c.pflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) | ||||
| 	c.pflags.SetOutput(c.flagErrorBuf) | ||||
|  | ||||
| 	c.lflags = nil | ||||
| @@ -1857,7 +1868,7 @@ func (c *Command) mergePersistentFlags() { | ||||
| // If c.parentsPflags == nil, it makes new. | ||||
| func (c *Command) updateParentsPflags() { | ||||
| 	if c.parentsPflags == nil { | ||||
| 		c.parentsPflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) | ||||
| 		c.parentsPflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) | ||||
| 		c.parentsPflags.SetOutput(c.flagErrorBuf) | ||||
| 		c.parentsPflags.SortFlags = false | ||||
| 	} | ||||
|   | ||||
							
								
								
									
										62
									
								
								vendor/github.com/spf13/cobra/completions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										62
									
								
								vendor/github.com/spf13/cobra/completions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,6 +17,8 @@ package cobra | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"regexp" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"sync" | ||||
|  | ||||
| @@ -211,24 +213,29 @@ func (c *Command) initCompleteCmd(args []string) { | ||||
| 				// 2- Even without completions, we need to print the directive | ||||
| 			} | ||||
|  | ||||
| 			noDescriptions := (cmd.CalledAs() == ShellCompNoDescRequestCmd) | ||||
| 			noDescriptions := cmd.CalledAs() == ShellCompNoDescRequestCmd | ||||
| 			if !noDescriptions { | ||||
| 				if doDescriptions, err := strconv.ParseBool(getEnvConfig(cmd, configEnvVarSuffixDescriptions)); err == nil { | ||||
| 					noDescriptions = !doDescriptions | ||||
| 				} | ||||
| 			} | ||||
| 			noActiveHelp := GetActiveHelpConfig(finalCmd) == activeHelpGlobalDisable | ||||
| 			out := finalCmd.OutOrStdout() | ||||
| 			for _, comp := range completions { | ||||
| 				if GetActiveHelpConfig(finalCmd) == activeHelpGlobalDisable { | ||||
| 					// Remove all activeHelp entries in this case | ||||
| 					if strings.HasPrefix(comp, activeHelpMarker) { | ||||
| 						continue | ||||
| 					} | ||||
| 				if noActiveHelp && strings.HasPrefix(comp, activeHelpMarker) { | ||||
| 					// Remove all activeHelp entries if it's disabled. | ||||
| 					continue | ||||
| 				} | ||||
| 				if noDescriptions { | ||||
| 					// Remove any description that may be included following a tab character. | ||||
| 					comp = strings.Split(comp, "\t")[0] | ||||
| 					comp = strings.SplitN(comp, "\t", 2)[0] | ||||
| 				} | ||||
|  | ||||
| 				// Make sure we only write the first line to the output. | ||||
| 				// This is needed if a description contains a linebreak. | ||||
| 				// Otherwise the shell scripts will interpret the other lines as new flags | ||||
| 				// and could therefore provide a wrong completion. | ||||
| 				comp = strings.Split(comp, "\n")[0] | ||||
| 				comp = strings.SplitN(comp, "\n", 2)[0] | ||||
|  | ||||
| 				// Finally trim the completion.  This is especially important to get rid | ||||
| 				// of a trailing tab when there are no description following it. | ||||
| @@ -237,14 +244,14 @@ func (c *Command) initCompleteCmd(args []string) { | ||||
| 				// although there is no description). | ||||
| 				comp = strings.TrimSpace(comp) | ||||
|  | ||||
| 				// Print each possible completion to stdout for the completion script to consume. | ||||
| 				fmt.Fprintln(finalCmd.OutOrStdout(), comp) | ||||
| 				// Print each possible completion to the output for the completion script to consume. | ||||
| 				fmt.Fprintln(out, comp) | ||||
| 			} | ||||
|  | ||||
| 			// As the last printout, print the completion directive for the completion script to parse. | ||||
| 			// The directive integer must be that last character following a single colon (:). | ||||
| 			// The completion script expects :<directive> | ||||
| 			fmt.Fprintf(finalCmd.OutOrStdout(), ":%d\n", directive) | ||||
| 			fmt.Fprintf(out, ":%d\n", directive) | ||||
|  | ||||
| 			// Print some helpful info to stderr for the user to understand. | ||||
| 			// Output from stderr must be ignored by the completion script. | ||||
| @@ -291,7 +298,7 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi | ||||
| 	} | ||||
| 	if err != nil { | ||||
| 		// Unable to find the real command. E.g., <program> someInvalidCmd <TAB> | ||||
| 		return c, []string{}, ShellCompDirectiveDefault, fmt.Errorf("Unable to find a command for arguments: %v", trimmedArgs) | ||||
| 		return c, []string{}, ShellCompDirectiveDefault, fmt.Errorf("unable to find a command for arguments: %v", trimmedArgs) | ||||
| 	} | ||||
| 	finalCmd.ctx = c.ctx | ||||
|  | ||||
| @@ -899,3 +906,34 @@ func CompError(msg string) { | ||||
| func CompErrorln(msg string) { | ||||
| 	CompError(fmt.Sprintf("%s\n", msg)) | ||||
| } | ||||
|  | ||||
| // These values should not be changed: users will be using them explicitly. | ||||
| const ( | ||||
| 	configEnvVarGlobalPrefix       = "COBRA" | ||||
| 	configEnvVarSuffixDescriptions = "COMPLETION_DESCRIPTIONS" | ||||
| ) | ||||
|  | ||||
| var configEnvVarPrefixSubstRegexp = regexp.MustCompile(`[^A-Z0-9_]`) | ||||
|  | ||||
| // configEnvVar returns the name of the program-specific configuration environment | ||||
| // variable.  It has the format <PROGRAM>_<SUFFIX> where <PROGRAM> is the name of the | ||||
| // root command in upper case, with all non-ASCII-alphanumeric characters replaced by `_`. | ||||
| func configEnvVar(name, suffix string) string { | ||||
| 	// This format should not be changed: users will be using it explicitly. | ||||
| 	v := strings.ToUpper(fmt.Sprintf("%s_%s", name, suffix)) | ||||
| 	v = configEnvVarPrefixSubstRegexp.ReplaceAllString(v, "_") | ||||
| 	return v | ||||
| } | ||||
|  | ||||
| // getEnvConfig returns the value of the configuration environment variable | ||||
| // <PROGRAM>_<SUFFIX> where <PROGRAM> is the name of the root command in upper | ||||
| // case, with all non-ASCII-alphanumeric characters replaced by `_`. | ||||
| // If the value is empty or not set, the value of the environment variable | ||||
| // COBRA_<SUFFIX> is returned instead. | ||||
| func getEnvConfig(cmd *Command, suffix string) string { | ||||
| 	v := os.Getenv(configEnvVar(cmd.Root().Name(), suffix)) | ||||
| 	if v == "" { | ||||
| 		v = os.Getenv(configEnvVar(configEnvVarGlobalPrefix, suffix)) | ||||
| 	} | ||||
| 	return v | ||||
| } | ||||
|   | ||||
							
								
								
									
										34
									
								
								vendor/github.com/spf13/cobra/flag_groups.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/spf13/cobra/flag_groups.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -23,9 +23,9 @@ import ( | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	requiredAsGroup   = "cobra_annotation_required_if_others_set" | ||||
| 	oneRequired       = "cobra_annotation_one_required" | ||||
| 	mutuallyExclusive = "cobra_annotation_mutually_exclusive" | ||||
| 	requiredAsGroupAnnotation   = "cobra_annotation_required_if_others_set" | ||||
| 	oneRequiredAnnotation       = "cobra_annotation_one_required" | ||||
| 	mutuallyExclusiveAnnotation = "cobra_annotation_mutually_exclusive" | ||||
| ) | ||||
|  | ||||
| // MarkFlagsRequiredTogether marks the given flags with annotations so that Cobra errors | ||||
| @@ -37,7 +37,7 @@ func (c *Command) MarkFlagsRequiredTogether(flagNames ...string) { | ||||
| 		if f == nil { | ||||
| 			panic(fmt.Sprintf("Failed to find flag %q and mark it as being required in a flag group", v)) | ||||
| 		} | ||||
| 		if err := c.Flags().SetAnnotation(v, requiredAsGroup, append(f.Annotations[requiredAsGroup], strings.Join(flagNames, " "))); err != nil { | ||||
| 		if err := c.Flags().SetAnnotation(v, requiredAsGroupAnnotation, append(f.Annotations[requiredAsGroupAnnotation], strings.Join(flagNames, " "))); err != nil { | ||||
| 			// Only errs if the flag isn't found. | ||||
| 			panic(err) | ||||
| 		} | ||||
| @@ -53,7 +53,7 @@ func (c *Command) MarkFlagsOneRequired(flagNames ...string) { | ||||
| 		if f == nil { | ||||
| 			panic(fmt.Sprintf("Failed to find flag %q and mark it as being in a one-required flag group", v)) | ||||
| 		} | ||||
| 		if err := c.Flags().SetAnnotation(v, oneRequired, append(f.Annotations[oneRequired], strings.Join(flagNames, " "))); err != nil { | ||||
| 		if err := c.Flags().SetAnnotation(v, oneRequiredAnnotation, append(f.Annotations[oneRequiredAnnotation], strings.Join(flagNames, " "))); err != nil { | ||||
| 			// Only errs if the flag isn't found. | ||||
| 			panic(err) | ||||
| 		} | ||||
| @@ -70,7 +70,7 @@ func (c *Command) MarkFlagsMutuallyExclusive(flagNames ...string) { | ||||
| 			panic(fmt.Sprintf("Failed to find flag %q and mark it as being in a mutually exclusive flag group", v)) | ||||
| 		} | ||||
| 		// Each time this is called is a single new entry; this allows it to be a member of multiple groups if needed. | ||||
| 		if err := c.Flags().SetAnnotation(v, mutuallyExclusive, append(f.Annotations[mutuallyExclusive], strings.Join(flagNames, " "))); err != nil { | ||||
| 		if err := c.Flags().SetAnnotation(v, mutuallyExclusiveAnnotation, append(f.Annotations[mutuallyExclusiveAnnotation], strings.Join(flagNames, " "))); err != nil { | ||||
| 			panic(err) | ||||
| 		} | ||||
| 	} | ||||
| @@ -91,9 +91,9 @@ func (c *Command) ValidateFlagGroups() error { | ||||
| 	oneRequiredGroupStatus := map[string]map[string]bool{} | ||||
| 	mutuallyExclusiveGroupStatus := map[string]map[string]bool{} | ||||
| 	flags.VisitAll(func(pflag *flag.Flag) { | ||||
| 		processFlagForGroupAnnotation(flags, pflag, requiredAsGroup, groupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, oneRequired, oneRequiredGroupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, mutuallyExclusive, mutuallyExclusiveGroupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, requiredAsGroupAnnotation, groupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, oneRequiredAnnotation, oneRequiredGroupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, mutuallyExclusiveAnnotation, mutuallyExclusiveGroupStatus) | ||||
| 	}) | ||||
|  | ||||
| 	if err := validateRequiredFlagGroups(groupStatus); err != nil { | ||||
| @@ -130,7 +130,7 @@ func processFlagForGroupAnnotation(flags *flag.FlagSet, pflag *flag.Flag, annota | ||||
| 					continue | ||||
| 				} | ||||
|  | ||||
| 				groupStatus[group] = map[string]bool{} | ||||
| 				groupStatus[group] = make(map[string]bool, len(flagnames)) | ||||
| 				for _, name := range flagnames { | ||||
| 					groupStatus[group][name] = false | ||||
| 				} | ||||
| @@ -232,9 +232,9 @@ func (c *Command) enforceFlagGroupsForCompletion() { | ||||
| 	oneRequiredGroupStatus := map[string]map[string]bool{} | ||||
| 	mutuallyExclusiveGroupStatus := map[string]map[string]bool{} | ||||
| 	c.Flags().VisitAll(func(pflag *flag.Flag) { | ||||
| 		processFlagForGroupAnnotation(flags, pflag, requiredAsGroup, groupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, oneRequired, oneRequiredGroupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, mutuallyExclusive, mutuallyExclusiveGroupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, requiredAsGroupAnnotation, groupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, oneRequiredAnnotation, oneRequiredGroupStatus) | ||||
| 		processFlagForGroupAnnotation(flags, pflag, mutuallyExclusiveAnnotation, mutuallyExclusiveGroupStatus) | ||||
| 	}) | ||||
|  | ||||
| 	// If a flag that is part of a group is present, we make all the other flags | ||||
| @@ -253,17 +253,17 @@ func (c *Command) enforceFlagGroupsForCompletion() { | ||||
| 	// If none of the flags of a one-required group are present, we make all the flags | ||||
| 	// of that group required so that the shell completion suggests them automatically | ||||
| 	for flagList, flagnameAndStatus := range oneRequiredGroupStatus { | ||||
| 		set := 0 | ||||
| 		isSet := false | ||||
|  | ||||
| 		for _, isSet := range flagnameAndStatus { | ||||
| 		for _, isSet = range flagnameAndStatus { | ||||
| 			if isSet { | ||||
| 				set++ | ||||
| 				break | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// None of the flags of the group are set, mark all flags in the group | ||||
| 		// as required | ||||
| 		if set == 0 { | ||||
| 		if !isSet { | ||||
| 			for _, fName := range strings.Split(flagList, " ") { | ||||
| 				_ = c.MarkFlagRequired(fName) | ||||
| 			} | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/spf13/cobra/powershell_completions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/spf13/cobra/powershell_completions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -28,8 +28,8 @@ import ( | ||||
| func genPowerShellComp(buf io.StringWriter, name string, includeDesc bool) { | ||||
| 	// Variables should not contain a '-' or ':' character | ||||
| 	nameForVar := name | ||||
| 	nameForVar = strings.Replace(nameForVar, "-", "_", -1) | ||||
| 	nameForVar = strings.Replace(nameForVar, ":", "_", -1) | ||||
| 	nameForVar = strings.ReplaceAll(nameForVar, "-", "_") | ||||
| 	nameForVar = strings.ReplaceAll(nameForVar, ":", "_") | ||||
|  | ||||
| 	compCmd := ShellCompRequestCmd | ||||
| 	if !includeDesc { | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							| @@ -81,7 +81,7 @@ github.com/spf13/afero/mem | ||||
| # github.com/spf13/cast v1.6.0 | ||||
| ## explicit; go 1.19 | ||||
| github.com/spf13/cast | ||||
| # github.com/spf13/cobra v1.8.0 | ||||
| # github.com/spf13/cobra v1.8.1 | ||||
| ## explicit; go 1.15 | ||||
| github.com/spf13/cobra | ||||
| # github.com/spf13/pflag v1.0.5 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Guillermo Kardolus
					Guillermo Kardolus