cli

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CompOneRequiredFlag = "completion_one_required_flag"
View Source
var DefaultEol = "\r\n"
View Source
var EnableCommandSorting = true

EnableCommandSorting controls sorting of the slice of commands, which is turned on by default. To disable sorting, set it to false.

View Source
var EnablePrefixMatching = false

EnablePrefixMatching allows to set automatic prefix matching. Automatic prefix matching can be a dangerous thing to automatically enable in CLI tools. Set this to true to enable it.

View Source
var ErrSubCommandRequired = errors.New("subcommand is required")

Functions

func OnlyValidArgs

func OnlyValidArgs(cmd *Command, args []string) error

OnlyValidArgs returns an error if any args are not in the list of ValidArgs.

Types

type Command

type Command struct {
	Use                        string
	Aliases                    []string
	SuggestFor                 []string
	Short                      string
	Long                       string
	Example                    string
	ValidArgs                  []string
	Args                       PositionalArgs
	ArgAliases                 []string
	Deprecated                 string
	Hidden                     bool
	Annotations                map[string]string
	Version                    string
	SilenceErrors              bool
	SilenceUsage               bool
	DisableFlagParsing         bool
	DisableAutoGenTag          bool
	DisableFlagsInUseLine      bool
	DisableSuggestions         bool
	SuggestionsMinimumDistance int
	TraverseChildren           bool
	FParseErrWhitelist         FParseErrWhitelist

	Activate       bool
	Background     bool
	CommonCommands bool
	Pid            int

	// The *Run functions are executed in the following order:
	//   * PersistentPreRun()
	//   * PreRun()
	//   * Run()
	//   * PostRun()
	//   * PersistentPostRun()
	// All functions get the same args, the arguments after the command name.
	//
	// PersistentPreRun: children of this command will inherit and execute.
	PersistentPreRun func(cmd *Command, pid int, args []string)
	// PersistentPreRunE: PersistentPreRun but returns an error.
	PersistentPreRunE func(cmd *Command, pid int, args []string) error
	// PreRun: children of this command will not inherit.
	PreRun func(cmd *Command, pid int, args []string)
	// PreRunE: PreRun but returns an error.
	PreRunE func(cmd *Command, pid int, args []string) error
	// Run: Typically the actual work function. Most commands will only implement this.
	Run func(cmd *Command, pid int, args []string)

	TimerEvent func(cmd *Command, pid int, tid int, ctx interface{}, interval int)

	ReadEvent func(cmd *Command, pid int, ctx interface{}, code int, key rune)

	PaintEvent func(cmd *Command, pid int, ctx interface{}, surface interfaces.ISurface)

	// RunE: Run but returns an error.
	RunE func(cmd *Command, pid int, args []string) error
	// PostRun: run after the Run command.
	PostRun func(cmd *Command, pid int, args []string)
	// PostRunE: PostRun but returns an error.
	PostRunE func(cmd *Command, pid int, args []string) error
	// PersistentPostRun: children of this command will inherit and execute after PostRun.
	PersistentPostRun func(cmd *Command, pid int, args []string)
	// PersistentPostRunE: PersistentPostRun but returns an error.
	PersistentPostRunE func(cmd *Command, pid int, args []string) error
	// contains filtered or unexported fields
}

func NewCommand

func NewCommand() *Command

func (*Command) AddCommand

func (c *Command) AddCommand(cmds ...*Command) error

func (*Command) ArgsLenAtDash

func (c *Command) ArgsLenAtDash() int

ArgsLenAtDash will return the length of c.Flags().Args at the moment when a -- was found during args parsing.

func (*Command) CalledAs

func (c *Command) CalledAs() string

CalledAs returns the command name or alias that was used to invoke this command or an empty string if the command has not been called.

func (*Command) Childs

func (c *Command) Childs() []*Command

func (*Command) CommandPath

func (c *Command) CommandPath() string

CommandPath returns the full path to this command.

func (*Command) CommandPathPadding

func (c *Command) CommandPathPadding() int

CommandPathPadding return padding for the command path.

func (*Command) Commands

func (c *Command) Commands() []*Command

func (*Command) DebugFlags

func (c *Command) DebugFlags()

DebugFlags used to determine which flags have been assigned to which commands and which persist.

func (*Command) ErrOrStderr

func (c *Command) ErrOrStderr() io.Writer

ErrOrStderr returns output to stderr

func (*Command) Execute

func (c *Command) Execute(cmd *Command, flags []string, pid int) error

func (*Command) Find

func (c *Command) Find(args []string) (*Command, []string, error)

Find the target command given the args and command tree meant to be run on the highest node. Only searches down.

func (*Command) Flag

func (c *Command) Flag(name string) (xFlag *mflag.Flag)

Flag climbs up the command tree looking for matching flag.

func (*Command) FlagErrorFunc

func (c *Command) FlagErrorFunc() (f func(*Command, error) error)

FlagErrorFunc returns either the function set by SetFlagErrorFunc for this command or a parent, or it returns a function which returns the original error.

func (*Command) Flags

func (c *Command) Flags() *mflag.FlagSet

Flags returns the complete FlagSet that applies to this command (local and persistent declared here and by all parents).

func (*Command) GetFlagErrorFunc

func (c *Command) GetFlagErrorFunc() func(*Command, error) error

func (*Command) GetGlobalNormalizationFunc

func (c *Command) GetGlobalNormalizationFunc() func(f *mflag.FlagSet, name string) mflag.NormalizedName

func (*Command) GetHelpCommand

func (c *Command) GetHelpCommand() *Command

func (*Command) GetHelpFunc

func (c *Command) GetHelpFunc() func(*Command, []string)

func (*Command) GetHelpTemplate

func (c *Command) GetHelpTemplate() string

func (*Command) GetRootContext

func (c *Command) GetRootContext() interfaces.IContext

func (*Command) GetUsageFunc

func (c *Command) GetUsageFunc() func(*Command) error

func (*Command) GetUsageTemplate

func (c *Command) GetUsageTemplate() string

func (*Command) GetVersionTemplate

func (c *Command) GetVersionTemplate() string

func (*Command) GlobalNormalizationFunc

func (c *Command) GlobalNormalizationFunc() func(f *mflag.FlagSet, name string) mflag.NormalizedName

GlobalNormalizationFunc returns the global normalization function or nil if it doesn't exist.

func (*Command) HasAlias

func (c *Command) HasAlias(s string) bool

HasAlias determines if a given string is an alias of the command.

func (*Command) HasAvailableFlags

func (c *Command) HasAvailableFlags() bool

HasAvailableFlags checks if the command contains any flags (local plus persistent from the entire structure) which are not hidden or deprecated.

func (*Command) HasAvailableInheritedFlags

func (c *Command) HasAvailableInheritedFlags() bool

HasAvailableInheritedFlags checks if the command has flags inherited from its parent command which are not hidden or deprecated.

func (*Command) HasAvailableLocalFlags

func (c *Command) HasAvailableLocalFlags() bool

HasAvailableLocalFlags checks if the command has flags specifically declared locally which are not hidden or deprecated.

func (*Command) HasAvailablePersistentFlags

func (c *Command) HasAvailablePersistentFlags() bool

HasAvailablePersistentFlags checks if the command contains persistent flags which are not hidden or deprecated.

func (*Command) HasAvailableSubCommands

func (c *Command) HasAvailableSubCommands() bool

HasAvailableSubCommands determines if a command has available sub commands that need to be shown in the usage/help default template under 'available commands'.

func (*Command) HasExample

func (c *Command) HasExample() bool

HasExample determines if the command has example.

func (*Command) HasFlags

func (c *Command) HasFlags() bool

HasFlags checks if the command contains any flags (local plus persistent from the entire structure).

func (*Command) HasHelpSubCommands

func (c *Command) HasHelpSubCommands() bool

HasHelpSubCommands determines if a command has any available 'help' sub commands that need to be shown in the usage/help default template under 'additional help topics'.

func (*Command) HasInheritedFlags

func (c *Command) HasInheritedFlags() bool

HasInheritedFlags checks if the command has flags inherited from its parent command.

func (*Command) HasLocalFlags

func (c *Command) HasLocalFlags() bool

HasLocalFlags checks if the command has flags specifically declared locally.

func (*Command) HasParent

func (c *Command) HasParent() bool

HasParent determines if the command is a child command.

func (*Command) HasPersistentFlags

func (c *Command) HasPersistentFlags() bool

HasPersistentFlags checks if the command contains persistent flags.

func (*Command) HasSubCommands

func (c *Command) HasSubCommands() bool

HasSubCommands determines if the command has children commands.

func (*Command) Help

func (c *Command) Help() error

Help puts out the help for the command. Used when a user calls help [command]. Can be defined by user by overriding HelpFunc.

func (*Command) HelpFunc

func (c *Command) HelpFunc() func(*Command, []string)

HelpFunc returns either the function set by SetHelpFunc for this command or a parent, or it returns a function with default help behavior.

func (*Command) HelpTemplate

func (c *Command) HelpTemplate() string

HelpTemplate return help template for the command.

func (*Command) InOrStdin

func (c *Command) InOrStdin() io.Reader

InOrStdin returns output to stderr

func (*Command) InheritedFlags

func (c *Command) InheritedFlags() *mflag.FlagSet

InheritedFlags returns all flags which were inherited from parent commands.

func (*Command) InitDefaultHelpCmd

func (c *Command) InitDefaultHelpCmd()

InitDefaultHelpCmd adds default help command to c. It is called automatically by executing the c or by calling help and usage. If c already has help command or c has no subcommands, it will do nothing.

func (*Command) InitDefaultHelpFlag

func (c *Command) InitDefaultHelpFlag()

InitDefaultHelpFlag adds default help flag to c. It is called automatically by executing the c or by calling help and usage. If c already has help flag, it will do nothing.

func (*Command) InitDefaultVersionFlag

func (c *Command) InitDefaultVersionFlag()

InitDefaultVersionFlag adds default version flag to c. It is called automatically by executing the c. If c already has a version flag, it will do nothing. If c.Version is empty, it will do nothing.

func (*Command) IsAdditionalHelpTopicCommand

func (c *Command) IsAdditionalHelpTopicCommand() bool

IsAdditionalHelpTopicCommand determines if a command is an additional help topic command; additional help topic command is determined by the fact that it is NOT runnable/hidden/deprecated, and has no sub commands that are runnable/hidden/deprecated.

func (*Command) IsAvailableCommand

func (c *Command) IsAvailableCommand() bool

IsAvailableCommand determines if a command is available as a non-help command (this includes all non deprecated/hidden commands).

func (*Command) LocalFlags

func (c *Command) LocalFlags() *mflag.FlagSet

LocalFlags returns the local FlagSet specifically set in the current command.

func (*Command) LocalNonPersistentFlags

func (c *Command) LocalNonPersistentFlags() *mflag.FlagSet

LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands.

func (*Command) Name

func (c *Command) Name() string

Name returns the command's name: the first word in the use line.

func (*Command) NameAndAliases

func (c *Command) NameAndAliases() string

NameAndAliases returns a list of the command name and all aliases

func (*Command) NamePadding

func (c *Command) NamePadding() int

NamePadding returns padding for the name.

func (*Command) NonInheritedFlags

func (c *Command) NonInheritedFlags() *mflag.FlagSet

NonInheritedFlags returns all flags which were not inherited from parent commands.

func (*Command) OutOrStderr

func (c *Command) OutOrStderr() io.Writer

OutOrStderr returns output to stderr

func (*Command) OutOrStdout

func (c *Command) OutOrStdout() io.Writer

func (*Command) Parent

func (c *Command) Parent() *Command

Parent returns a commands parent command.

func (*Command) ParseFlags

func (c *Command) ParseFlags(args []string) error

ParseFlags parses persistent flag tree and local flags.

func (*Command) PersistentFlags

func (c *Command) PersistentFlags() *mflag.FlagSet

PersistentFlags returns the persistent FlagSet specifically set in the current command.

func (*Command) Prepare

func (c *Command) Prepare() (*Command, []string, error)

func (*Command) Print

func (c *Command) Print(i ...interface{})

Print is a convenience method to Print to the defined output, fallback to Stderr if not set.

func (*Command) PrintErr

func (c *Command) PrintErr(i ...interface{})

PrintErr is a convenience method to Print to the defined Err output, fallback to Stderr if not set.

func (*Command) PrintErrf

func (c *Command) PrintErrf(format string, i ...interface{})

PrintErrf is a convenience method to Printf to the defined Err output, fallback to Stderr if not set.

func (*Command) PrintErrln

func (c *Command) PrintErrln(i ...interface{})

PrintErrln is a convenience method to Println to the defined Err output, fallback to Stderr if not set.

func (*Command) Printf

func (c *Command) Printf(format string, i ...interface{})

Printf is a convenience method to Printf to the defined output, fallback to Stderr if not set.

func (*Command) Println

func (c *Command) Println(i ...interface{})

Println is a convenience method to Println to the defined output, fallback to Stderr if not set.

func (*Command) RemoveCommand

func (c *Command) RemoveCommand(cmds ...*Command)

RemoveCommand removes one or more commands from a parent command.

func (*Command) ResetCommands

func (c *Command) ResetCommands()

ResetCommands delete parent, subcommand and help command from c.

func (*Command) ResetFlags

func (c *Command) ResetFlags()

ResetFlags deletes all flags from command.

func (*Command) Root

func (c *Command) Root() *Command

Root finds root command.

func (*Command) RootParent

func (c *Command) RootParent() *Command

func (*Command) Runnable

func (c *Command) Runnable() bool

Runnable determines if the command is itself runnable.

func (*Command) SetArgs

func (c *Command) SetArgs(a []string)

func (*Command) SetErr

func (c *Command) SetErr(newErr io.Writer)

SetErr sets the destination for error messages. If newErr is nil, os.Stderr is used.

func (*Command) SetFlagErrorFunc

func (c *Command) SetFlagErrorFunc(f func(*Command, error) error)

SetFlagErrorFunc sets a function to generate an error when mflag parsing fails.

func (*Command) SetGlobalNormalizationFunc

func (c *Command) SetGlobalNormalizationFunc(n func(f *mflag.FlagSet, name string) mflag.NormalizedName)

SetGlobalNormalizationFunc sets a normalization function to all mflag sets and also to child commands. The user should not have a cyclic dependency on commands.

func (*Command) SetHelpCommand

func (c *Command) SetHelpCommand(cmd *Command)

SetHelpCommand sets help command.

func (*Command) SetHelpFunc

func (c *Command) SetHelpFunc(f func(*Command, []string))

SetHelpFunc sets help function. Can be defined by Application.

func (*Command) SetHelpTemplate

func (c *Command) SetHelpTemplate(s string)

SetHelpTemplate sets help template to be used. Application can use it to set custom template.

func (*Command) SetIn

func (c *Command) SetIn(newIn io.Reader)

SetIn sets the source for input data. If newIn is nil, os.Stdin is used.

func (*Command) SetOut

func (c *Command) SetOut(newOut io.Writer)

SetOut sets the destination for usage messages. If newOut is nil, os.Stdout is used.

func (*Command) SetOutput

func (c *Command) SetOutput(output io.Writer)

SetOutput sets the destination for usage and error messages. If output is nil, os.Stderr is used. Deprecated: Use SetOut and/or SetErr instead

func (*Command) SetRootContext

func (c *Command) SetRootContext(ctx interfaces.IContext)

func (*Command) SetUsageFunc

func (c *Command) SetUsageFunc(f func(*Command) error)

SetUsageFunc sets usage function. Usage can be defined by application.

func (*Command) SetUsageTemplate

func (c *Command) SetUsageTemplate(s string)

SetUsageTemplate sets usage template. Can be defined by Application.

func (*Command) SetVersionTemplate

func (c *Command) SetVersionTemplate(s string)

SetVersionTemplate sets version template to be used. Application can use it to set custom template.

func (*Command) SuggestionsFor

func (c *Command) SuggestionsFor(typedName string) []string

SuggestionsFor provides suggestions for the typedName.

func (*Command) Traverse

func (c *Command) Traverse(args []string) (*Command, []string, error)

func (*Command) Usage

func (c *Command) Usage() error

Usage puts out the usage for the command. Used when a user provides invalid input. Can be defined by user by overriding UsageFunc.

func (*Command) UsageFunc

func (c *Command) UsageFunc() (f func(*Command) error)

UsageFunc returns either the function set by SetUsageFunc for this command or a parent, or it returns a default usage function.

func (*Command) UsagePadding

func (c *Command) UsagePadding() int

UsagePadding return padding for the usage.

func (*Command) UsageString

func (c *Command) UsageString() string

UsageString returns usage string.

func (*Command) UsageTemplate

func (c *Command) UsageTemplate() string

UsageTemplate returns usage template for the command.

func (*Command) UseLine

func (c *Command) UseLine() string

UseLine puts out the full usage for a given command (including parents).

func (*Command) ValidateArgs

func (c *Command) ValidateArgs(args []string) error

func (*Command) VersionTemplate

func (c *Command) VersionTemplate() string

VersionTemplate return version template for the command.

func (*Command) VisitParents

func (c *Command) VisitParents(fn func(*Command))

VisitParents visits all parents of the command and invokes fn on each parent.

func (*Command) Write

func (c *Command) Write(data []byte)

func (*Command) WriteLn

func (c *Command) WriteLn(data []byte)

type FParseErrWhitelist

type FParseErrWhitelist mflag.ParseErrorsWhitelist

type PositionalArgs

type PositionalArgs func(cmd *Command, args []string) error

func ExactArgs

func ExactArgs(n int) PositionalArgs

ExactArgs returns an error if there are not exactly n args.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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