Documentation
¶
Overview ¶
Package appcmd contains helper functionality for applications using commands.
This package wraps cobra. Imports should not import cobra directly - raise an issue internally if there is missing cobra functionality you need. It is acceptable to import pflag, however.
Package appcmd contains helper functionality for applications using commands.
Index ¶
- Variables
- func BindMultiple(bindFuncs ...func(*pflag.FlagSet)) func(*pflag.FlagSet)
- func Main(ctx context.Context, command *Command)
- func MarkFlagRequired(flagSet *pflag.FlagSet, flagName string) error
- func NewInvalidArgumentError(message string) error
- func NewInvalidArgumentErrorf(format string, args ...any) error
- func Run(ctx context.Context, container app.Container, command *Command) error
- func WrapInvalidArgumentError(delegate error) error
- type Command
- type PositionalArgs
Constants ¶
This section is empty.
Variables ¶
var ( // NoArgs matches cobra.NoArgs. NoArgs = newPositionalArgs(cobra.NoArgs) // OnlyValidArgs matches cobra.OnlyValidArgs. OnlyValidArgs = newPositionalArgs(cobra.OnlyValidArgs) // ArbitraryArgs matches cobra.ArbitraryArgs. ArbitraryArgs = newPositionalArgs(cobra.ArbitraryArgs) )
Functions ¶
func BindMultiple ¶
BindMultiple is a convenience function for binding multiple flag functions.
func Main ¶
Main runs the application using the OS container and calling os.Exit on the return value of Run.
func MarkFlagRequired ¶ added in v1.32.0
MarkFlagRequired matches cobra.MarkFlagRequired so that importers of appcmd do not need to reference cobra (and shouldn't).
func NewInvalidArgumentError ¶
NewInvalidArgumentError creates a new InvalidArgumentError, indicating that the error was caused by argument validation. This causes us to print the usage help text for the command that it is returned from.
func NewInvalidArgumentErrorf ¶
NewInvalidArgumentErrorf creates a new InvalidArgumentError, indicating that the error was caused by argument validation. This causes us to print the usage help text for the command that it is returned from.
func WrapInvalidArgumentError ¶ added in v1.37.0
WrapInvalidArgumentError creates a new InvalidArgumentError, indicating that the error was caused by argument validation. This causes us to print the usage help text for the command that it is returned from.
Types ¶
type Command ¶
type Command struct {
// Use is the one-line usage message.
// Required.
Use string
// Aliases are aliases that can be used instead of the first word in Use.
Aliases []string
// Short is the short message shown in the 'help' output.
// Required if Long is set.
Short string
// Long is the long message shown in the 'help <this-command>' output.
// The Short field will be prepended to the Long field with two newlines.
// Must be unset if short is unset.
Long string
// Args are the expected arguments.
Args PositionalArgs
// Deprecated says to print this deprecation string.
Deprecated string
// Hidden says to hide this command.
Hidden bool
// BindFlags allows binding of flags on build.
BindFlags func(*pflag.FlagSet)
// BindPersistentFlags allows binding of flags on build.
BindPersistentFlags func(*pflag.FlagSet)
// NormalizeFlag allows for normalization of flag names.
NormalizeFlag func(*pflag.FlagSet, string) string
// NormalizePersistentFlag allows for normalization of flag names.
NormalizePersistentFlag func(*pflag.FlagSet, string) string
// Run is the command to run.
// Required if there are no sub-commands.
// Must be unset if there are sub-commands.
Run func(context.Context, app.Container) error
// SubCommands are the sub-commands. Optional.
// Must be unset if there is a run function.
SubCommands []*Command
// ModifyCobra will modify the underlying [cobra.Command] that is created from this [Command].
//
// This should be used sparingly. Almost all operations should be able to be performed
// by the fields of Command. However, ModifyCommand exists as a break-class feature.
ModifyCobra func(*cobra.Command) error
// Version the version of the command.
//
// If this is specified, a flag --version will be added to the command
// that precedes all other functionality, and which prints the version
// to stdout.
Version string
}
Command is a command.
type PositionalArgs ¶ added in v1.32.0
type PositionalArgs interface {
// contains filtered or unexported methods
}
PositionalArgs matches cobra.PositionalArgs so that importers of appcmd do not need to reference cobra (and shouldn't).
func ExactArgs ¶ added in v1.32.0
func ExactArgs(n int) PositionalArgs
ExactArgs matches cobra.ExactArgs.
func MaximumNArgs ¶ added in v1.32.0
func MaximumNArgs(n int) PositionalArgs
MaximumNArgs matches cobra.MaximumNArgs.
func MinimumNArgs ¶ added in v1.32.0
func MinimumNArgs(n int) PositionalArgs
MinimumNArgs matches cobra.MinimumNArgs.
func RangeArgs ¶ added in v1.32.0
func RangeArgs(minimum int, maximum int) PositionalArgs
RangeArgs matches cobra.RangeArgs.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package appcmdtesting contains test utilities for appcmd.
|
Package appcmdtesting contains test utilities for appcmd. |