cmdx

package
v0.0.631 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: Apache-2.0 Imports: 29 Imported by: 55

Documentation

Index

Constants

View Source
const (
	FlagEndpoint      = "endpoint"
	FlagSkipTLSVerify = "skip-tls-verify"
	FlagHeaders       = "http-header"
)
View Source
const (
	FlagPageSize  = "page-size"
	FlagPageToken = "page-token"
)
View Source
const (
	FormatQuiet       format = "quiet"
	FormatTable       format = "table"
	FormatJSON        format = "json"
	FormatJSONPath    format = "jsonpath"
	FormatJSONPointer format = "jsonpointer"
	FormatJSONPretty  format = "json-pretty"
	FormatYAML        format = "yaml"
	FormatDefault     format = "default"

	FlagFormat = "format"

	None = "<none>"
)
View Source
const (
	FlagQuiet = "quiet"
)

Variables

View Source
var (
	// ErrNilDependency is returned if a dependency is missing.
	ErrNilDependency = errors.New("a dependency was expected to be defined but is nil. Please open an issue with the stack trace")
	// ErrNoPrintButFail is returned to detect a failure state that was already reported to the user in some way
	ErrNoPrintButFail = errors.New("this error should never be printed")
)

Functions

func AddUsageTemplateFunc added in v0.0.480

func AddUsageTemplateFunc(name string, f interface{})

AddUsageTemplateFunc adds a template function to the usage template.

func AskForConfirmation added in v0.0.119

func AskForConfirmation(s string, stdin io.Reader, stdout io.Writer) bool

asks for confirmation with the question string s and reads the answer pass nil to use os.Stdin and os.Stdout

func AskScannerForConfirmation added in v0.0.359

func AskScannerForConfirmation(s string, reader *bufio.Reader, stdout io.Writer) (bool, error)

func AssertUsageTemplates added in v0.0.480

func AssertUsageTemplates(t require.TestingT, cmd *cobra.Command)

AssertUsageTemplates asserts that the usage string of the commands are properly templated.

func CheckResponse

func CheckResponse(err error, expectedStatusCode int, response *http.Response)

CheckResponse fatals if err is nil or the response.StatusCode does not match the expectedStatusCode

func DisableUsageTemplating added in v0.0.478

func DisableUsageTemplating(cmds ...*cobra.Command)

DisableUsageTemplating resets the commands usage template to the default. This can be used to undo the effects of EnableUsageTemplating, specifically for a subcommand.

func EnableUsageTemplating added in v0.0.478

func EnableUsageTemplating(cmds ...*cobra.Command)

EnableUsageTemplating enables gotemplates for usage strings, i.e. cmd.Short, cmd.Long, and cmd.Example. The data for the template is the command itself. Especially useful are `.Root.Name` and `.CommandPath`. This will be inherited by all subcommands, so enabling it on the root command is sufficient.

func EnvVarExamplesHelpMessage

func EnvVarExamplesHelpMessage(name string) string

EnvVarExamplesHelpMessage returns a string containing documentation on how to use environment variables.

func ExactArgs added in v0.0.6

func ExactArgs(cmd *cobra.Command, args []string, l int)

ExactArgs fatals if args does not equal l.

func Exec added in v0.0.154

func Exec(t testing.TB, cmd *cobra.Command, stdIn io.Reader, args ...string) (string, string, error)

Exec runs the provided cobra command with the given reader as STD_IN and the given args. Returns STD_OUT, STD_ERR and the error from the execution.

func ExecBackgroundCtx added in v0.0.256

func ExecBackgroundCtx(ctx context.Context, cmd *cobra.Command, stdIn io.Reader, stdOut, stdErr io.Writer, args ...string) *errgroup.Group

ExecBackgroundCtx runs the cobra command in the background.

func ExecCtx added in v0.0.171

func ExecCtx(ctx context.Context, cmd *cobra.Command, stdIn io.Reader, args ...string) (string, string, error)

func ExecExpectedErr added in v0.0.154

func ExecExpectedErr(t testing.TB, cmd *cobra.Command, args ...string) string

ExecExpectedErr is a helper that assumes a failing run from Exec returning ErrNoPrintButFail Returns STD_ERR.

func ExecExpectedErrCtx added in v0.0.171

func ExecExpectedErrCtx(ctx context.Context, t require.TestingT, cmd *cobra.Command, args ...string) string

func ExecNoErr added in v0.0.154

func ExecNoErr(t testing.TB, cmd *cobra.Command, args ...string) string

ExecNoErr is a helper that assumes a successful run from Exec. Returns STD_OUT.

func ExecNoErrCtx added in v0.0.171

func ExecNoErrCtx(ctx context.Context, t require.TestingT, cmd *cobra.Command, args ...string) string

func ExpectDependency added in v0.0.37

func ExpectDependency(logger *logrusx.Logger, dependencies ...interface{})

ExpectDependency expects every dependency to be not nil or it fatals.

func FailSilently added in v0.0.152

func FailSilently(cmd *cobra.Command) error

FailSilently is supposed to be used within a commands RunE function. It silences cobras error handling and returns the ErrNoPrintButFail error.

func Fatalf

func Fatalf(message string, args ...interface{})

Fatalf prints to os.Stderr and exists with code 1.

func FormatResponse

func FormatResponse(o interface{}) string

FormatResponse takes an object and prints a json.MarshalIdent version of it or fatals.

func MinArgs

func MinArgs(cmd *cobra.Command, args []string, min int)

MinArgs fatals if args does not satisfy min.

func Must

func Must(err error, message string, args ...interface{})

Must fatals with the optional message if err is not nil.

func NewClient added in v0.0.430

func NewClient(cmd *cobra.Command) (*http.Client, *url.URL, error)

NewClient creates a new HTTP client.

func ParsePaginationArgs added in v0.0.425

func ParsePaginationArgs(cmd *cobra.Command, pageArg, perPageArg string) (page, perPage int64, err error)

ParsePaginationArgs parses pagination arguments from the command line.

func ParseTokenPaginationArgs added in v0.0.428

func ParseTokenPaginationArgs(cmd *cobra.Command) (page string, perPage int, err error)

ParseTokenPaginationArgs parses token-based pagination arguments from the command line.

func PrintErrors added in v0.0.152

func PrintErrors(cmd *cobra.Command, errs map[string]error)

func PrintJSONAble added in v0.0.172

func PrintJSONAble(cmd *cobra.Command, d interface{ String() string })

func PrintOpenAPIError added in v0.0.386

func PrintOpenAPIError(cmd *cobra.Command, err error) error

func PrintRow added in v0.0.152

func PrintRow(cmd *cobra.Command, row TableRow)

func PrintTable added in v0.0.172

func PrintTable(cmd *cobra.Command, table Table)

func RangeArgs added in v0.0.6

func RangeArgs(cmd *cobra.Command, args []string, r []int)

RangeArgs fatals if args does not satisfy any of the lengths set in r.

func RegisterFormatFlags added in v0.0.152

func RegisterFormatFlags(flags *pflag.FlagSet)

func RegisterHTTPClientFlags added in v0.0.430

func RegisterHTTPClientFlags(flags *pflag.FlagSet)

RegisterHTTPClientFlags registers HTTP client configuration flags.

func RegisterJSONFormatFlags added in v0.0.172

func RegisterJSONFormatFlags(flags *pflag.FlagSet)

func RegisterNoiseFlags added in v0.0.173

func RegisterNoiseFlags(flags *pflag.FlagSet)

func RegisterTokenPaginationFlags added in v0.0.428

func RegisterTokenPaginationFlags(cmd *cobra.Command) (pageSize int, pageToken string)

func Remote added in v0.0.430

func Remote(cmd *cobra.Command) (string, error)

Remote returns the remote endpoint for the given command.

func RemoteURI added in v0.0.430

func RemoteURI(cmd *cobra.Command) (*url.URL, error)

RemoteURI returns the remote URI for the given command.

func TemplateCommandField added in v0.0.573

func TemplateCommandField(cmd *cobra.Command, field string) (string, error)

func Version

func Version(gitTag, gitHash, buildTime *string) *cobra.Command

Version returns a *cobra.Command that handles the `version` command.

func ZeroOrTwoArgs added in v0.0.425

func ZeroOrTwoArgs(cmd *cobra.Command, args []string) error

ZeroOrTwoArgs requires either no or 2 arguments.

Types

type CallbackWriter added in v0.0.256

type CallbackWriter struct {
	Callbacks map[string]func([]byte) error
	// contains filtered or unexported fields
}

CallbackWriter will execute each callback once the message is received. The full matched message is passed to the callback. An error returned from the callback is returned by Write.

func (*CallbackWriter) String added in v0.0.256

func (c *CallbackWriter) String() string

func (*CallbackWriter) Write added in v0.0.256

func (c *CallbackWriter) Write(msg []byte) (int, error)

type CommandExecuter added in v0.0.171

type CommandExecuter struct {
	New            func() *cobra.Command
	Ctx            context.Context
	PersistentArgs []string
}

func (*CommandExecuter) Exec added in v0.0.171

func (c *CommandExecuter) Exec(stdin io.Reader, args ...string) (string, string, error)

func (*CommandExecuter) ExecBackground added in v0.0.256

func (c *CommandExecuter) ExecBackground(stdin io.Reader, stdOut, stdErr io.Writer, args ...string) *errgroup.Group

func (*CommandExecuter) ExecExpectedErr added in v0.0.171

func (c *CommandExecuter) ExecExpectedErr(t require.TestingT, args ...string) string

func (*CommandExecuter) ExecNoErr added in v0.0.171

func (c *CommandExecuter) ExecNoErr(t require.TestingT, args ...string) string

type ConditionalPrinter added in v0.0.173

type ConditionalPrinter struct {
	// contains filtered or unexported fields
}

func NewConditionalPrinter added in v0.0.173

func NewConditionalPrinter(w io.Writer, print bool) *ConditionalPrinter

func NewLoudErrPrinter added in v0.0.173

func NewLoudErrPrinter(cmd *cobra.Command) *ConditionalPrinter

NewLoudErrPrinter returns a ConditionalPrinter that only prints to cmd.ErrOrStderr when --quiet is not set

func NewLoudOutPrinter added in v0.0.173

func NewLoudOutPrinter(cmd *cobra.Command) *ConditionalPrinter

NewLoudOutPrinter returns a ConditionalPrinter that only prints to cmd.OutOrStdout when --quiet is not set

func NewLoudPrinter added in v0.0.173

func NewLoudPrinter(cmd *cobra.Command, w io.Writer) *ConditionalPrinter

NewLoudPrinter returns a ConditionalPrinter that only prints to w when --quiet is not set

func NewQuietErrPrinter added in v0.0.173

func NewQuietErrPrinter(cmd *cobra.Command) *ConditionalPrinter

NewQuietErrPrinter returns a ConditionalPrinter that only prints to cmd.ErrOrStderr when --quiet is set

func NewQuietOutPrinter added in v0.0.173

func NewQuietOutPrinter(cmd *cobra.Command) *ConditionalPrinter

NewQuietOutPrinter returns a ConditionalPrinter that only prints to cmd.OutOrStdout when --quiet is set

func NewQuietPrinter added in v0.0.173

func NewQuietPrinter(cmd *cobra.Command, w io.Writer) *ConditionalPrinter

NewQuietPrinter returns a ConditionalPrinter that only prints to w when --quiet is set

func (*ConditionalPrinter) Print added in v0.0.173

func (p *ConditionalPrinter) Print(a ...interface{}) (n int, err error)

func (*ConditionalPrinter) Printf added in v0.0.173

func (p *ConditionalPrinter) Printf(format string, a ...interface{}) (n int, err error)

func (*ConditionalPrinter) Println added in v0.0.173

func (p *ConditionalPrinter) Println(a ...interface{}) (n int, err error)

type Nil added in v0.0.218

type Nil struct{}

func (Nil) Interface added in v0.0.218

func (Nil) Interface() interface{}

func (Nil) String added in v0.0.218

func (Nil) String() string

type OutputIder added in v0.0.424

type OutputIder string

OutputIder outputs an ID

func (OutputIder) Columns added in v0.0.424

func (i OutputIder) Columns() []string

func (OutputIder) Header added in v0.0.424

func (OutputIder) Header() []string

func (OutputIder) Interface added in v0.0.424

func (i OutputIder) Interface() interface{}

type OutputIderCollection added in v0.0.424

type OutputIderCollection struct {
	Items []OutputIder
}

OutputIderCollection outputs a list of IDs

func (OutputIderCollection) Header added in v0.0.424

func (OutputIderCollection) Header() []string

func (OutputIderCollection) Interface added in v0.0.424

func (c OutputIderCollection) Interface() interface{}

func (OutputIderCollection) Len added in v0.0.424

func (c OutputIderCollection) Len() int

func (OutputIderCollection) Table added in v0.0.424

func (c OutputIderCollection) Table() [][]string

type PaginatedList added in v0.0.428

type PaginatedList struct {
	Collection interface {
		Table
		IDs() []string
	} `json:"-"`
	Items         []interface{} `json:"items"`
	NextPageToken string        `json:"next_page_token"`
	IsLastPage    bool          `json:"is_last_page"`
}

func (*PaginatedList) Header added in v0.0.428

func (r *PaginatedList) Header() []string

func (*PaginatedList) IDs added in v0.0.428

func (r *PaginatedList) IDs() []string

func (*PaginatedList) Interface added in v0.0.428

func (r *PaginatedList) Interface() interface{}

func (*PaginatedList) Len added in v0.0.428

func (r *PaginatedList) Len() int

func (*PaginatedList) Table added in v0.0.428

func (r *PaginatedList) Table() [][]string

type Table added in v0.0.172

type Table interface {
	TableHeader
	Table() [][]string
	Interface() interface{}
	Len() int
}

type TableHeader added in v0.0.172

type TableHeader interface {
	Header() []string
}

type TableRow added in v0.0.172

type TableRow interface {
	TableHeader
	Columns() []string
	Interface() interface{}
}

Jump to

Keyboard shortcuts

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