Documentation ¶
Overview ¶
Package cli provides functions to build the selector command line interface
Package cli provides functions to build the selector command line interface
Index ¶
- type CommandLineInterface
- func (cl *CommandLineInterface) BoolFlag(name string, shorthand *string, defaultValue *bool, description string)
- func (cl *CommandLineInterface) BoolFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *bool, ...)
- func (*CommandLineInterface) BoolMe(i interface{}) *bool
- func (cl *CommandLineInterface) ByteQuantityFlag(name string, shorthand *string, defaultValue *bytequantity.ByteQuantity, ...)
- func (cl *CommandLineInterface) ByteQuantityFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, ...)
- func (*CommandLineInterface) ByteQuantityMe(i interface{}) *bytequantity.ByteQuantity
- func (cl *CommandLineInterface) ByteQuantityMinMaxRangeFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, ...)
- func (cl *CommandLineInterface) ByteQuantityMinMaxRangeFlags(name string, shorthand *string, defaultValue *bytequantity.ByteQuantity, ...)
- func (*CommandLineInterface) ByteQuantityRangeMe(i interface{}) *selector.ByteQuantityRangeFilter
- func (cl *CommandLineInterface) ConfigBoolFlag(name string, shorthand *string, defaultValue *bool, description string)
- func (cl *CommandLineInterface) ConfigIntFlag(name string, shorthand *string, defaultValue *int, description string)
- func (cl *CommandLineInterface) ConfigPathFlag(name string, shorthand *string, defaultValue *string, description string)
- func (cl *CommandLineInterface) ConfigStringFlag(name string, shorthand *string, defaultValue *string, description string, ...)
- func (cl *CommandLineInterface) ConfigStringOptionsFlag(name string, shorthand *string, defaultValue *string, description string, ...)
- func (cl *CommandLineInterface) ConfigStringSliceFlag(name string, shorthand *string, defaultValue []string, description string)
- func (cl *CommandLineInterface) Float64FlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *float64, ...)
- func (*CommandLineInterface) Float64Me(i interface{}) *float64
- func (cl *CommandLineInterface) Float64MinMaxRangeFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *float64, ...)
- func (cl *CommandLineInterface) Float64MinMaxRangeFlags(name string, shorthand *string, defaultValue *float64, description string)
- func (*CommandLineInterface) Float64RangeMe(i interface{}) *selector.Float64RangeFilter
- func (cl *CommandLineInterface) Int32FlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *int32, ...)
- func (*CommandLineInterface) Int32Me(i interface{}) *int32
- func (cl *CommandLineInterface) Int32MinMaxRangeFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *int32, ...)
- func (cl *CommandLineInterface) Int32MinMaxRangeFlags(name string, shorthand *string, defaultValue *int32, description string)
- func (*CommandLineInterface) Int32RangeMe(i interface{}) *selector.Int32RangeFilter
- func (cl *CommandLineInterface) IntFlag(name string, shorthand *string, defaultValue *int, description string)
- func (cl *CommandLineInterface) IntFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *int, ...)
- func (*CommandLineInterface) IntMe(i interface{}) *int
- func (cl *CommandLineInterface) IntMinMaxRangeFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *int, ...)
- func (cl *CommandLineInterface) IntMinMaxRangeFlags(name string, shorthand *string, defaultValue *int, description string)
- func (*CommandLineInterface) IntRangeMe(i interface{}) *selector.IntRangeFilter
- func (cl *CommandLineInterface) ParseAndValidateFlags() (map[string]interface{}, error)
- func (cl *CommandLineInterface) ParseFlags() (map[string]interface{}, error)
- func (cl *CommandLineInterface) PathFlag(name string, shorthand *string, defaultValue *string, description string)
- func (cl *CommandLineInterface) PathFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *string, ...)
- func (cl *CommandLineInterface) ProcessFlags() error
- func (cl *CommandLineInterface) ProcessRangeFilterFlags() error
- func (cl *CommandLineInterface) RatioFlag(name string, shorthand *string, defaultValue *string, description string) error
- func (cl *CommandLineInterface) RegexFlag(name string, shorthand *string, defaultValue *string, description string)
- func (cl *CommandLineInterface) RegexFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *string, ...)
- func (*CommandLineInterface) RegexMe(i interface{}) *regexp.Regexp
- func (cl *CommandLineInterface) SetUntouchedFlagValuesToNil() error
- func (cl *CommandLineInterface) StringFlag(name string, shorthand *string, defaultValue *string, description string, ...)
- func (cl *CommandLineInterface) StringFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *string, ...)
- func (*CommandLineInterface) StringMe(i interface{}) *string
- func (cl *CommandLineInterface) StringOptionsFlag(name string, shorthand *string, defaultValue *string, description string, ...)
- func (cl *CommandLineInterface) StringOptionsFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *string, ...)
- func (cl *CommandLineInterface) StringSliceFlag(name string, shorthand *string, defaultValue []string, description string)
- func (cl *CommandLineInterface) StringSliceFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue []string, ...)
- func (*CommandLineInterface) StringSliceMe(i interface{}) *[]string
- func (cl *CommandLineInterface) SuiteBoolFlag(name string, shorthand *string, defaultValue *bool, description string)
- func (cl *CommandLineInterface) SuiteStringFlag(name string, shorthand *string, defaultValue *string, description string, ...)
- func (cl *CommandLineInterface) SuiteStringOptionsFlag(name string, shorthand *string, defaultValue *string, description string, ...)
- func (cl *CommandLineInterface) SuiteStringSliceFlag(name string, shorthand *string, defaultValue []string, description string)
- func (cl *CommandLineInterface) ValidateFlags() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CommandLineInterface ¶
type CommandLineInterface struct { Command *cobra.Command Flags map[string]interface{} // contains filtered or unexported fields }
CommandLineInterface is a type to group CLI funcs and state
func New ¶
func New(binaryName string, shortUsage string, longUsage, examples string, run runFunc) CommandLineInterface
New creates an instance of CommandLineInterface
func (*CommandLineInterface) BoolFlag ¶
func (cl *CommandLineInterface) BoolFlag(name string, shorthand *string, defaultValue *bool, description string)
BoolFlag creates and registers a flag accepting a boolean
func (*CommandLineInterface) BoolFlagOnFlagSet ¶
func (cl *CommandLineInterface) BoolFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *bool, description string)
BoolFlagOnFlagSet creates and registers a flag accepting a boolean for configuration purposes.
func (*CommandLineInterface) BoolMe ¶
func (*CommandLineInterface) BoolMe(i interface{}) *bool
BoolMe takes an interface and returns a pointer to a bool value If the underlying interface kind is not bool or *bool then nil is returned
func (*CommandLineInterface) ByteQuantityFlag ¶
func (cl *CommandLineInterface) ByteQuantityFlag(name string, shorthand *string, defaultValue *bytequantity.ByteQuantity, description string)
ByteQuantityFlag creates and registers a flag accepting a byte quantity like 512mb
func (*CommandLineInterface) ByteQuantityFlagOnFlagSet ¶
func (cl *CommandLineInterface) ByteQuantityFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *bytequantity.ByteQuantity, description string)
ByteQuantityFlagOnFlagSet creates and registers a flag accepting a ByteQuantity
func (*CommandLineInterface) ByteQuantityMe ¶
func (*CommandLineInterface) ByteQuantityMe(i interface{}) *bytequantity.ByteQuantity
ByteQuantityMe takes an interface and returns a pointer to a ByteQuantity If the underlying interface kind is not bytequantity.ByteQuantity or *bytequantity.ByteQuantity then nil is returned
func (*CommandLineInterface) ByteQuantityMinMaxRangeFlagOnFlagSet ¶
func (cl *CommandLineInterface) ByteQuantityMinMaxRangeFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *bytequantity.ByteQuantity, description string)
ByteQuantityMinMaxRangeFlagOnFlagSet creates and registers a min, max, and helper flag each accepting a ByteQuantity like 5mb or 12gb
func (*CommandLineInterface) ByteQuantityMinMaxRangeFlags ¶
func (cl *CommandLineInterface) ByteQuantityMinMaxRangeFlags(name string, shorthand *string, defaultValue *bytequantity.ByteQuantity, description string)
ByteQuantityMinMaxRangeFlags creates and registers a min, max, and helper flag each accepting a byte quantity like 512mb
func (*CommandLineInterface) ByteQuantityRangeMe ¶
func (*CommandLineInterface) ByteQuantityRangeMe(i interface{}) *selector.ByteQuantityRangeFilter
ByteQuantityRangeMe takes an interface and returns a pointer to a ByteQuantityRangeFilter value If the underlying interface kind is not ByteQuantityRangeFilter or *ByteQuantityRangeFilter then nil is returned
func (*CommandLineInterface) ConfigBoolFlag ¶
func (cl *CommandLineInterface) ConfigBoolFlag(name string, shorthand *string, defaultValue *bool, description string)
ConfigBoolFlag creates and registers a flag accepting a boolean for configuration purposes. Config flags will be grouped at the bottom in the output of --help
func (*CommandLineInterface) ConfigIntFlag ¶
func (cl *CommandLineInterface) ConfigIntFlag(name string, shorthand *string, defaultValue *int, description string)
ConfigIntFlag creates and registers a flag accepting an Integer for configuration purposes. Config flags will be grouped at the bottom in the output of --help
func (*CommandLineInterface) ConfigPathFlag ¶
func (cl *CommandLineInterface) ConfigPathFlag(name string, shorthand *string, defaultValue *string, description string)
ConfigPathFlag creates and registers a flag accepting a string representing a path and validates that it is a valid path. Config flags will be grouped at the bottom in the output of --help
func (*CommandLineInterface) ConfigStringFlag ¶
func (cl *CommandLineInterface) ConfigStringFlag(name string, shorthand *string, defaultValue *string, description string, validationFn validator)
ConfigStringFlag creates and registers a flag accepting a String for configuration purposes. Config flags will be grouped at the bottom in the output of --help
func (*CommandLineInterface) ConfigStringOptionsFlag ¶
func (cl *CommandLineInterface) ConfigStringOptionsFlag(name string, shorthand *string, defaultValue *string, description string, validOpts []string)
ConfigStringOptionsFlag creates and registers a flag accepting a string and valid options for use in validation. Config flags will be grouped at the bottom in the output of --help
func (*CommandLineInterface) ConfigStringSliceFlag ¶
func (cl *CommandLineInterface) ConfigStringSliceFlag(name string, shorthand *string, defaultValue []string, description string)
ConfigStringSliceFlag creates and registers a flag accepting a list of strings. Config flags will be grouped at the bottom in the output of --help
func (*CommandLineInterface) Float64FlagOnFlagSet ¶
func (cl *CommandLineInterface) Float64FlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *float64, description string)
Float64FlagOnFlagSet creates and registers a flag accepting a float64
func (*CommandLineInterface) Float64Me ¶
func (*CommandLineInterface) Float64Me(i interface{}) *float64
Float64Me takes an interface and returns a pointer to a float64 value If the underlying interface kind is not float64 or *float64 then nil is returned
func (*CommandLineInterface) Float64MinMaxRangeFlagOnFlagSet ¶
func (cl *CommandLineInterface) Float64MinMaxRangeFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *float64, description string)
Float64MinMaxRangeFlagOnFlagSet creates and registers a min, max, and helper flag each accepting a float64
func (*CommandLineInterface) Float64MinMaxRangeFlags ¶
func (cl *CommandLineInterface) Float64MinMaxRangeFlags(name string, shorthand *string, defaultValue *float64, description string)
Float64MinMaxRangeFlags creates and registers a min, max, and helper flag each accepting a float64
func (*CommandLineInterface) Float64RangeMe ¶
func (*CommandLineInterface) Float64RangeMe(i interface{}) *selector.Float64RangeFilter
Float64RangeMe takes an interface and returns a pointer to a Float64RangeFilter value If the underlying interface kind is not Float64RangeFilter or *Float64RangeFilter then nil is returned
func (*CommandLineInterface) Int32FlagOnFlagSet ¶
func (cl *CommandLineInterface) Int32FlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *int32, description string)
Int32FlagOnFlagSet creates and registers a flag accepting an int
func (*CommandLineInterface) Int32Me ¶
func (*CommandLineInterface) Int32Me(i interface{}) *int32
Int32Me takes an interface and returns a pointer to an int value If the underlying interface kind is not int or *int then nil is returned
func (*CommandLineInterface) Int32MinMaxRangeFlagOnFlagSet ¶
func (cl *CommandLineInterface) Int32MinMaxRangeFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *int32, description string)
Int32MinMaxRangeFlagOnFlagSet creates and registers a min, max, and helper flag each accepting an int
func (*CommandLineInterface) Int32MinMaxRangeFlags ¶
func (cl *CommandLineInterface) Int32MinMaxRangeFlags(name string, shorthand *string, defaultValue *int32, description string)
Int32MinMaxRangeFlags creates and registers a min, max, and helper flag each accepting an int
func (*CommandLineInterface) Int32RangeMe ¶
func (*CommandLineInterface) Int32RangeMe(i interface{}) *selector.Int32RangeFilter
Int32RangeMe takes an interface and returns a pointer to an Int32RangeFilter value If the underlying interface kind is not Int32RangeFilter or *Int32RangeFilter then nil is returned
func (*CommandLineInterface) IntFlag ¶
func (cl *CommandLineInterface) IntFlag(name string, shorthand *string, defaultValue *int, description string)
IntFlag creates and registers a flag accepting an Integer
func (*CommandLineInterface) IntFlagOnFlagSet ¶
func (cl *CommandLineInterface) IntFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *int, description string)
IntFlagOnFlagSet creates and registers a flag accepting an int
func (*CommandLineInterface) IntMe ¶
func (*CommandLineInterface) IntMe(i interface{}) *int
IntMe takes an interface and returns a pointer to an int value If the underlying interface kind is not int or *int then nil is returned
func (*CommandLineInterface) IntMinMaxRangeFlagOnFlagSet ¶
func (cl *CommandLineInterface) IntMinMaxRangeFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *int, description string)
IntMinMaxRangeFlagOnFlagSet creates and registers a min, max, and helper flag each accepting an int
func (*CommandLineInterface) IntMinMaxRangeFlags ¶
func (cl *CommandLineInterface) IntMinMaxRangeFlags(name string, shorthand *string, defaultValue *int, description string)
IntMinMaxRangeFlags creates and registers a min, max, and helper flag each accepting an int
func (*CommandLineInterface) IntRangeMe ¶
func (*CommandLineInterface) IntRangeMe(i interface{}) *selector.IntRangeFilter
IntRangeMe takes an interface and returns a pointer to an IntRangeFilter value If the underlying interface kind is not IntRangeFilter or *IntRangeFilter then nil is returned
func (*CommandLineInterface) ParseAndValidateFlags ¶
func (cl *CommandLineInterface) ParseAndValidateFlags() (map[string]interface{}, error)
ParseAndValidateFlags will parse flags registered in this instance of CLI from os.Args and then perform validation
func (*CommandLineInterface) ParseFlags ¶
func (cl *CommandLineInterface) ParseFlags() (map[string]interface{}, error)
ParseFlags will parse flags registered in this instance of CLI from os.Args
func (*CommandLineInterface) PathFlag ¶
func (cl *CommandLineInterface) PathFlag(name string, shorthand *string, defaultValue *string, description string)
PathFlag creates and registers a flag accepting a string representing a path and validates that it is a valid path.
func (*CommandLineInterface) PathFlagOnFlagSet ¶
func (cl *CommandLineInterface) PathFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *string, description string)
PathFlagOnFlagSet creates and registers a flag accepting a string as a path
func (*CommandLineInterface) ProcessFlags ¶
func (cl *CommandLineInterface) ProcessFlags() error
ProcessFlags iterates through any registered processors and executes them Processors are executed before validators
func (*CommandLineInterface) ProcessRangeFilterFlags ¶
func (cl *CommandLineInterface) ProcessRangeFilterFlags() error
ProcessRangeFilterFlags sets min and max to the appropriate 0 or max bounds based on the 3-tuple that a user specifies for base flag, min, and/or max
func (*CommandLineInterface) RatioFlag ¶
func (cl *CommandLineInterface) RatioFlag(name string, shorthand *string, defaultValue *string, description string) error
RatioFlag creates and registers a flag accepting a ratio
func (*CommandLineInterface) RegexFlag ¶
func (cl *CommandLineInterface) RegexFlag(name string, shorthand *string, defaultValue *string, description string)
RegexFlag creates and registers a flag accepting a string and validates that it is a valid regex.
func (*CommandLineInterface) RegexFlagOnFlagSet ¶
func (cl *CommandLineInterface) RegexFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *string, description string)
RegexFlagOnFlagSet creates and registers a flag accepting a string slice of regular expressions.
func (*CommandLineInterface) RegexMe ¶
func (*CommandLineInterface) RegexMe(i interface{}) *regexp.Regexp
RegexMe takes an interface and returns a pointer to a regex If the underlying interface kind is not regexp.Regexp or *regexp.Regexp then nil is returned
func (*CommandLineInterface) SetUntouchedFlagValuesToNil ¶
func (cl *CommandLineInterface) SetUntouchedFlagValuesToNil() error
SetUntouchedFlagValuesToNil iterates through all flags and sets their value to nil if they were not specifically set by the user This allows for a specified value, a negative value (like false or empty string), or an unspecified (nil) entry.
func (*CommandLineInterface) StringFlag ¶
func (cl *CommandLineInterface) StringFlag(name string, shorthand *string, defaultValue *string, description string, validationFn validator)
StringFlag creates and registers a flag accepting a String and a validator function. The validator function is provided so that more complex flags can be created from a string input.
func (*CommandLineInterface) StringFlagOnFlagSet ¶
func (cl *CommandLineInterface) StringFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *string, description string, processorFn processor, validationFn validator)
StringFlagOnFlagSet creates and registers a flag accepting a string and a validator function. The validator function is provided so that more complex flags can be created from a string input.
func (*CommandLineInterface) StringMe ¶
func (*CommandLineInterface) StringMe(i interface{}) *string
StringMe takes an interface and returns a pointer to a string value If the underlying interface kind is not string or *string then nil is returned
func (*CommandLineInterface) StringOptionsFlag ¶
func (cl *CommandLineInterface) StringOptionsFlag(name string, shorthand *string, defaultValue *string, description string, validOpts []string)
StringOptionsFlag creates and registers a flag accepting a string and valid options for use in validation.
func (*CommandLineInterface) StringOptionsFlagOnFlagSet ¶
func (cl *CommandLineInterface) StringOptionsFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue *string, description string, validOpts []string)
StringOptionsFlagOnFlagSet creates and registers a flag accepting a string with valid options. The validOpts slice of strings will be used to perform validation
func (*CommandLineInterface) StringSliceFlag ¶
func (cl *CommandLineInterface) StringSliceFlag(name string, shorthand *string, defaultValue []string, description string)
StringSliceFlag creates and registers a flag accepting a list of strings.
func (*CommandLineInterface) StringSliceFlagOnFlagSet ¶
func (cl *CommandLineInterface) StringSliceFlagOnFlagSet(flagSet *pflag.FlagSet, name string, shorthand *string, defaultValue []string, description string)
StringSliceFlagOnFlagSet creates and registers a flag accepting a string slice.
func (*CommandLineInterface) StringSliceMe ¶
func (*CommandLineInterface) StringSliceMe(i interface{}) *[]string
StringSliceMe takes an interface and returns a pointer to a string slice If the underlying interface kind is not []string or *[]string then nil is returned
func (*CommandLineInterface) SuiteBoolFlag ¶
func (cl *CommandLineInterface) SuiteBoolFlag(name string, shorthand *string, defaultValue *bool, description string)
SuiteBoolFlag creates and registers a flag accepting a boolean for aggregate filters. Suite flags will be grouped in the middle of the output --help
func (*CommandLineInterface) SuiteStringFlag ¶
func (cl *CommandLineInterface) SuiteStringFlag(name string, shorthand *string, defaultValue *string, description string, validationFn validator)
SuiteStringFlag creates and registers a flag accepting a string for aggreagate filters. Suite flags will be grouped in the middle of the output --help
func (*CommandLineInterface) SuiteStringOptionsFlag ¶
func (cl *CommandLineInterface) SuiteStringOptionsFlag(name string, shorthand *string, defaultValue *string, description string, validOpts []string)
SuiteStringOptionsFlag creates and registers a flag accepting a string and valid options for use in validation. Suite flags will be grouped in the middle of the output --help
func (*CommandLineInterface) SuiteStringSliceFlag ¶
func (cl *CommandLineInterface) SuiteStringSliceFlag(name string, shorthand *string, defaultValue []string, description string)
SuiteStringSliceFlag creates and registers a flag accepting a list of strings. Suite flags will be grouped in the middle of the output --help
func (*CommandLineInterface) ValidateFlags ¶
func (cl *CommandLineInterface) ValidateFlags() error
ValidateFlags iterates through any registered validators and executes them