Skip to content

Commit

Permalink
fix(command): struct to pass maligned linter check
Browse files Browse the repository at this point in the history
Signed-off-by: danmx <[email protected]>
  • Loading branch information
danmx committed Oct 17, 2023
1 parent 63a0032 commit 86e879b
Showing 1 changed file with 77 additions and 69 deletions.
146 changes: 77 additions & 69 deletions command.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,36 @@ type Group struct {
// you to define the usage and description as part of your command
// definition to ensure usability.
type Command struct {
// Aliases is an array of aliases that can be used instead of the first word in Use.
Aliases []string

// SuggestFor is an array of command names for which this command will be suggested -
// similar to aliases but only suggests.
SuggestFor []string

// ValidArgs is list of all valid non-flag arguments that are accepted in shell completions
ValidArgs []string

// ArgAliases is List of aliases for ValidArgs.
// These are not suggested to the user in the shell completion,
// but accepted if entered manually.
ArgAliases []string

// groups for subcommands
commandgroups []*Group

// args is actual args parsed from flags.
args []string

// commandCalledAs is the name or alias value used to call this command.
commandCalledAs struct {
name string
called bool
}

// commands is the list of commands supported by this program.
commands []*Command

// Use is the one-line usage message.
// Recommended syntax is as follows:
// [ ] identifies an optional argument. Arguments that are not enclosed in brackets are required.
Expand All @@ -57,13 +87,6 @@ type Command struct {
// Example: add [-F file | -D dir]... [-f format] profile
Use string

// Aliases is an array of aliases that can be used instead of the first word in Use.
Aliases []string

// SuggestFor is an array of command names for which this command will be suggested -
// similar to aliases but only suggests.
SuggestFor []string

// Short is the short description shown in the 'help' output.
Short string

Expand All @@ -76,38 +99,56 @@ type Command struct {
// Example is examples of how to use the command.
Example string

// ValidArgs is list of all valid non-flag arguments that are accepted in shell completions
ValidArgs []string
// ValidArgsFunction is an optional function that provides valid non-flag arguments for shell completion.
// It is a dynamic version of using ValidArgs.
// Only one of ValidArgs and ValidArgsFunction can be used for a command.
ValidArgsFunction func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective)

// Expected arguments
Args PositionalArgs

// ArgAliases is List of aliases for ValidArgs.
// These are not suggested to the user in the shell completion,
// but accepted if entered manually.
ArgAliases []string

// BashCompletionFunction is custom bash functions used by the legacy bash autocompletion generator.
// For portability with other shells, it is recommended to instead use ValidArgsFunction
BashCompletionFunction string

// Deprecated defines, if this command is deprecated and should print this string when used.
Deprecated string

// Annotations are key/value pairs that can be used by applications to identify or
// group commands.
Annotations map[string]string

// Version defines the version for this command. If this value is non-empty and the command does not
// define a "version" flag, a "version" boolean flag will be added to the command and, if specified,
// will print content of the "Version" variable. A shorthand "v" flag will also be added if the
// command does not define one.
Version string

// usageTemplate is usage template defined by user.
usageTemplate string

// helpTemplate is help template defined by user.
helpTemplate string

// helpCommandGroupID is the group id for the helpCommand
helpCommandGroupID string

// completionCommandGroupID is the group id for the completion command
completionCommandGroupID string

// versionTemplate is the version template defined by user.
versionTemplate string

// errPrefix is the error message prefix defined by user.
errPrefix string

// inReader is a reader defined by the user that replaces stdin
inReader io.Reader
// outWriter is a writer defined by the user that replaces stdout
outWriter io.Writer
// errWriter is a writer defined by the user that replaces stderr
errWriter io.Writer

// ValidArgsFunction is an optional function that provides valid non-flag arguments for shell completion.
// It is a dynamic version of using ValidArgs.
// Only one of ValidArgs and ValidArgsFunction can be used for a command.
ValidArgsFunction func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective)

// Expected arguments
Args PositionalArgs

// Annotations are key/value pairs that can be used by applications to identify or
// group commands.
Annotations map[string]string

// The *Run functions are executed in the following order:
// * PersistentPreRun()
// * PreRun()
Expand Down Expand Up @@ -139,11 +180,6 @@ type Command struct {
// PersistentPostRunE: PersistentPostRun but returns an error.
PersistentPostRunE func(cmd *Command, args []string) error

// groups for subcommands
commandgroups []*Group

// args is actual args parsed from flags.
args []string
// flagErrorBuf contains all error messages from pflag.
flagErrorBuf *bytes.Buffer
// flags is full set of flags.
Expand All @@ -162,36 +198,28 @@ type Command struct {

// usageFunc is usage func defined by user.
usageFunc func(*Command) error
// usageTemplate is usage template defined by user.
usageTemplate string
// flagErrorFunc is func defined by user and it's called when the parsing of
// flags returns an error.
flagErrorFunc func(*Command, error) error
// helpTemplate is help template defined by user.
helpTemplate string
// helpFunc is help func defined by user.
helpFunc func(*Command, []string)
// helpCommand is command with usage 'help'. If it's not defined by user,
// cobra uses default help command.
helpCommand *Command
// helpCommandGroupID is the group id for the helpCommand
helpCommandGroupID string

// completionCommandGroupID is the group id for the completion command
completionCommandGroupID string
// parent is a parent command for this command.
parent *Command

// versionTemplate is the version template defined by user.
versionTemplate string
ctx context.Context

// errPrefix is the error message prefix defined by user.
errPrefix string
// Max lengths of commands' string lengths for use in padding.
commandsMaxUseLen int
commandsMaxCommandPathLen int
commandsMaxNameLen int

// inReader is a reader defined by the user that replaces stdin
inReader io.Reader
// outWriter is a writer defined by the user that replaces stdout
outWriter io.Writer
// errWriter is a writer defined by the user that replaces stderr
errWriter io.Writer
// SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions.
// Must be > 0.
SuggestionsMinimumDistance int

// FParseErrWhitelist flag parse errors to be ignored
FParseErrWhitelist FParseErrWhitelist
Expand All @@ -201,22 +229,6 @@ type Command struct {

// commandsAreSorted defines, if command slice are sorted or not.
commandsAreSorted bool
// commandCalledAs is the name or alias value used to call this command.
commandCalledAs struct {
name string
called bool
}

ctx context.Context

// commands is the list of commands supported by this program.
commands []*Command
// parent is a parent command for this command.
parent *Command
// Max lengths of commands' string lengths for use in padding.
commandsMaxUseLen int
commandsMaxCommandPathLen int
commandsMaxNameLen int

// TraverseChildren parses flags on all parents before executing child command.
TraverseChildren bool
Expand Down Expand Up @@ -249,10 +261,6 @@ type Command struct {
// DisableSuggestions disables the suggestions based on Levenshtein distance
// that go along with 'unknown command' messages.
DisableSuggestions bool

// SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions.
// Must be > 0.
SuggestionsMinimumDistance int
}

// Context returns underlying command context. If command was executed
Expand Down

0 comments on commit 86e879b

Please sign in to comment.