appcmd

package
v1.28.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2023 License: Apache-2.0 Imports: 21 Imported by: 114

Documentation

Overview

Package appcmd contains helper functionality for applications using commands.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BindMultiple

func BindMultiple(bindFuncs ...func(*pflag.FlagSet)) func(*pflag.FlagSet)

BindMultiple is a convenience function for binding multiple flag functions.

func Main

func Main(ctx context.Context, command *Command)

Main runs the application using the OS container and calling os.Exit on the return value of Run.

func NewInvalidArgumentError

func NewInvalidArgumentError(message string) error

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

func NewInvalidArgumentErrorf(format string, args ...interface{}) error

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 Run

func Run(ctx context.Context, container app.Container, command *Command) error

Run runs the application using the container.

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.
	//
	// TODO: make specific types for appcmd to limit what can be done.
	Args cobra.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
	// 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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL