Documentation
¶
Overview ¶
Package flagutil defines utilities for registering and parsing command line flags.
Index ¶
- func BoolFunc(f *pflag.FlagSet, name string, usage string, fn func(string) error) *pflag.Flag
- func BoolFuncP(f *pflag.FlagSet, name, shorthand string, usage string, fn func(string) error) *pflag.Flag
- func BoolSliceVar(f *pflag.FlagSet, p *[]bool, name string, value []bool, usage string) *pflag.Flag
- func BoolSliceVarP(f *pflag.FlagSet, p *[]bool, name, shorthand string, value []bool, ...) *pflag.Flag
- func BoolVar(f *pflag.FlagSet, p *bool, name string, value bool, usage string) *pflag.Flag
- func BoolVarP(f *pflag.FlagSet, p *bool, name, shorthand string, value bool, usage string) *pflag.Flag
- func CountVar(f *pflag.FlagSet, p *int, name string, usage string) *pflag.Flag
- func CountVarP(f *pflag.FlagSet, p *int, name, shorthand string, usage string) *pflag.Flag
- func DefaultIsZeroValue(f *pflag.Flag) bool
- func DurationOr(f *pflag.Flag, flagValue string, def *metav1.Duration) *metav1.Duration
- func DurationSliceVar(f *pflag.FlagSet, p *[]time.Duration, name string, value []time.Duration, ...) *pflag.Flag
- func DurationSliceVarP(f *pflag.FlagSet, p *[]time.Duration, name, shorthand string, ...) *pflag.Flag
- func DurationVar(f *pflag.FlagSet, p *time.Duration, name string, value time.Duration, ...) *pflag.Flag
- func DurationVarP(f *pflag.FlagSet, p *time.Duration, name, shorthand string, ...) *pflag.Flag
- func FlagUsages(f *pflag.FlagSet, opts UsageFormatOptions) string
- func Float32SliceVar(f *pflag.FlagSet, p *[]float32, name string, value []float32, usage string) *pflag.Flag
- func Float32SliceVarP(f *pflag.FlagSet, p *[]float32, name, shorthand string, value []float32, ...) *pflag.Flag
- func Float32Var(f *pflag.FlagSet, p *float32, name string, value float32, usage string) *pflag.Flag
- func Float32VarP(f *pflag.FlagSet, p *float32, name, shorthand string, value float32, ...) *pflag.Flag
- func Float64SliceVar(f *pflag.FlagSet, p *[]float64, name string, value []float64, usage string) *pflag.Flag
- func Float64SliceVarP(f *pflag.FlagSet, p *[]float64, name, shorthand string, value []float64, ...) *pflag.Flag
- func Float64Var(f *pflag.FlagSet, p *float64, name string, value float64, usage string) *pflag.Flag
- func Float64VarP(f *pflag.FlagSet, p *float64, name, shorthand string, value float64, ...) *pflag.Flag
- func Func(f *pflag.FlagSet, name string, usage string, fn func(string) error) *pflag.Flag
- func FuncP(f *pflag.FlagSet, name, shorthand string, usage string, fn func(string) error) *pflag.Flag
- func GetEnvName(f *pflag.Flag) string
- func GetFirstAnnotation(f *pflag.Flag, key string) (string, bool)
- func GetFirstAnnotationOr(f *pflag.Flag, key string, def string) string
- func Int16Var(f *pflag.FlagSet, p *int16, name string, value int16, usage string) *pflag.Flag
- func Int16VarP(f *pflag.FlagSet, p *int16, name, shorthand string, value int16, usage string) *pflag.Flag
- func Int32SliceVar(f *pflag.FlagSet, p *[]int32, name string, value []int32, usage string) *pflag.Flag
- func Int32SliceVarP(f *pflag.FlagSet, p *[]int32, name, shorthand string, value []int32, ...) *pflag.Flag
- func Int32Var(f *pflag.FlagSet, p *int32, name string, value int32, usage string) *pflag.Flag
- func Int32VarP(f *pflag.FlagSet, p *int32, name, shorthand string, value int32, usage string) *pflag.Flag
- func Int64SliceVar(f *pflag.FlagSet, p *[]int64, name string, value []int64, usage string) *pflag.Flag
- func Int64SliceVarP(f *pflag.FlagSet, p *[]int64, name, shorthand string, value []int64, ...) *pflag.Flag
- func Int64Var(f *pflag.FlagSet, p *int64, name string, value int64, usage string) *pflag.Flag
- func Int64VarP(f *pflag.FlagSet, p *int64, name, shorthand string, value int64, usage string) *pflag.Flag
- func Int8Var(f *pflag.FlagSet, p *int8, name string, value int8, usage string) *pflag.Flag
- func Int8VarP(f *pflag.FlagSet, p *int8, name, shorthand string, value int8, usage string) *pflag.Flag
- func IntSliceVar(f *pflag.FlagSet, p *[]int, name string, value []int, usage string) *pflag.Flag
- func IntSliceVarP(f *pflag.FlagSet, p *[]int, name, shorthand string, value []int, usage string) *pflag.Flag
- func IntVar(f *pflag.FlagSet, p *int, name string, value int, usage string) *pflag.Flag
- func IntVarP(f *pflag.FlagSet, p *int, name, shorthand string, value int, usage string) *pflag.Flag
- func MergeMapValues[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](f *pflag.Flag, flagValues M1, in M2) M2
- func ParseEnvOverrides(f *pflag.Flag) error
- func SetAnnotation(f *pflag.Flag, key string, values ...string)
- func SetEnvName(f *pflag.Flag, envName string)
- func SetMapKeysOr[T any](f *pflag.Flag, flagValue []string, in map[string]T) map[string]T
- func SetMapValuesOr[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](f *pflag.Flag, flagValues M1, in M2, setter SetFunc[V1, V2]) M2
- func StringSliceVar(f *pflag.FlagSet, p *[]string, name string, value []string, usage string) *pflag.Flag
- func StringSliceVarP(f *pflag.FlagSet, p *[]string, name, shorthand string, value []string, ...) *pflag.Flag
- func StringToBoolVar(f *pflag.FlagSet, p *map[string]bool, name string, value map[string]bool, ...) *pflag.Flag
- func StringToBoolVarP(f *pflag.FlagSet, p *map[string]bool, name, shorthand string, ...) *pflag.Flag
- func StringToInt64Var(f *pflag.FlagSet, p *map[string]int64, name string, value map[string]int64, ...) *pflag.Flag
- func StringToInt64VarP(f *pflag.FlagSet, p *map[string]int64, name, shorthand string, ...) *pflag.Flag
- func StringToIntVar(f *pflag.FlagSet, p *map[string]int, name string, value map[string]int, ...) *pflag.Flag
- func StringToIntVarP(f *pflag.FlagSet, p *map[string]int, name, shorthand string, ...) *pflag.Flag
- func StringToOptStringVar(f *pflag.FlagSet, p *map[string]*string, name string, value map[string]*string, ...) *pflag.Flag
- func StringToOptStringVarP(f *pflag.FlagSet, p *map[string]*string, name, shorthand string, ...) *pflag.Flag
- func StringToStringVar(f *pflag.FlagSet, p *map[string]string, name string, value map[string]string, ...) *pflag.Flag
- func StringToStringVarP(f *pflag.FlagSet, p *map[string]string, name, shorthand string, ...) *pflag.Flag
- func StringVar(f *pflag.FlagSet, p *string, name string, value string, usage string) *pflag.Flag
- func StringVarP(f *pflag.FlagSet, p *string, name, shorthand string, value string, ...) *pflag.Flag
- func Uint16Var(f *pflag.FlagSet, p *uint16, name string, value uint16, usage string) *pflag.Flag
- func Uint16VarP(f *pflag.FlagSet, p *uint16, name, shorthand string, value uint16, ...) *pflag.Flag
- func Uint32Var(f *pflag.FlagSet, p *uint32, name string, value uint32, usage string) *pflag.Flag
- func Uint32VarP(f *pflag.FlagSet, p *uint32, name, shorthand string, value uint32, ...) *pflag.Flag
- func Uint64Var(f *pflag.FlagSet, p *uint64, name string, value uint64, usage string) *pflag.Flag
- func Uint64VarP(f *pflag.FlagSet, p *uint64, name, shorthand string, value uint64, ...) *pflag.Flag
- func Uint8Var(f *pflag.FlagSet, p *uint8, name string, value uint8, usage string) *pflag.Flag
- func Uint8VarP(f *pflag.FlagSet, p *uint8, name, shorthand string, value uint8, usage string) *pflag.Flag
- func UintSliceVar(f *pflag.FlagSet, p *[]uint, name string, value []uint, usage string) *pflag.Flag
- func UintSliceVarP(f *pflag.FlagSet, p *[]uint, name, shorthand string, value []uint, ...) *pflag.Flag
- func UintVar(f *pflag.FlagSet, p *uint, name string, value uint, usage string) *pflag.Flag
- func UintVarP(f *pflag.FlagSet, p *uint, name, shorthand string, value uint, usage string) *pflag.Flag
- func ValueOr[T any](f *pflag.Flag, flagValue T, def T) T
- func Var(f *pflag.FlagSet, value pflag.Value, name string, usage string) *pflag.Flag
- func VarP(f *pflag.FlagSet, value pflag.Value, name, shorthand string, usage string) *pflag.Flag
- type Columns
- type DynamicColumns
- type EnvParseError
- type SetFunc
- type StaticColumns
- type UsageFormatOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BoolFunc ¶
BoolFunc creates a pflag.Flag.
func BoolFuncP ¶
func BoolFuncP(f *pflag.FlagSet, name, shorthand string, usage string, fn func(string) error) *pflag.Flag
BoolFuncP creates a pflag.Flag.
func BoolSliceVar ¶
BoolSliceVar creates a pflag.Flag.
func BoolSliceVarP ¶
func BoolSliceVarP(f *pflag.FlagSet, p *[]bool, name, shorthand string, value []bool, usage string) *pflag.Flag
BoolSliceVarP creates a pflag.Flag.
func BoolVar ¶
BoolVar creates a pflag.Flag.
func BoolVarP ¶
func BoolVarP(f *pflag.FlagSet, p *bool, name, shorthand string, value bool, usage string) *pflag.Flag
BoolVarP creates a pflag.Flag.
func CountVar ¶
CountVar creates a pflag.Flag.
func CountVarP ¶
CountVarP creates a pflag.Flag.
func DefaultIsZeroValue ¶
DefaultIsZeroValue returns true if the default value for this flag represents a zero value.
This is a best effort guess.
func DurationOr ¶
DurationOr parses a string flag into a metav1.Duration, returning def if the flag was not set.
func DurationSliceVar ¶
func DurationSliceVar(f *pflag.FlagSet, p *[]time.Duration, name string, value []time.Duration, usage string) *pflag.Flag
DurationSliceVar creates a pflag.Flag.
func DurationSliceVarP ¶
func DurationSliceVarP(f *pflag.FlagSet, p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) *pflag.Flag
DurationSliceVarP creates a pflag.Flag.
func DurationVar ¶
func DurationVar(f *pflag.FlagSet, p *time.Duration, name string, value time.Duration, usage string) *pflag.Flag
DurationVar creates a pflag.Flag.
func DurationVarP ¶
func DurationVarP(f *pflag.FlagSet, p *time.Duration, name, shorthand string, value time.Duration, usage string) *pflag.Flag
DurationVarP creates a pflag.Flag.
func FlagUsages ¶
func FlagUsages(f *pflag.FlagSet, opts UsageFormatOptions) string
FlagUsages returns a string containing the usage information for all flags in the FlagSet
func Float32SliceVar ¶
func Float32SliceVar(f *pflag.FlagSet, p *[]float32, name string, value []float32, usage string) *pflag.Flag
Float32SliceVar creates a pflag.Flag.
func Float32SliceVarP ¶
func Float32SliceVarP(f *pflag.FlagSet, p *[]float32, name, shorthand string, value []float32, usage string) *pflag.Flag
Float32SliceVarP creates a pflag.Flag.
func Float32Var ¶
Float32Var creates a pflag.Flag.
func Float32VarP ¶
func Float32VarP(f *pflag.FlagSet, p *float32, name, shorthand string, value float32, usage string) *pflag.Flag
Float32VarP creates a pflag.Flag.
func Float64SliceVar ¶
func Float64SliceVar(f *pflag.FlagSet, p *[]float64, name string, value []float64, usage string) *pflag.Flag
Float64SliceVar creates a pflag.Flag.
func Float64SliceVarP ¶
func Float64SliceVarP(f *pflag.FlagSet, p *[]float64, name, shorthand string, value []float64, usage string) *pflag.Flag
Float64SliceVarP creates a pflag.Flag.
func Float64Var ¶
Float64Var creates a pflag.Flag.
func Float64VarP ¶
func Float64VarP(f *pflag.FlagSet, p *float64, name, shorthand string, value float64, usage string) *pflag.Flag
Float64VarP creates a pflag.Flag.
func Func ¶
Func creates a pflag.Flag.
func FuncP ¶
func FuncP(f *pflag.FlagSet, name, shorthand string, usage string, fn func(string) error) *pflag.Flag
FuncP creates a pflag.Flag.
func GetEnvName ¶
GetEnvName gets the name of the environment variable used to override the flag's value in the ParseEnvOverrides function.
An empty string means the annotation is not set.
func GetFirstAnnotation ¶
GetFirstAnnotation returns the first annotation for the key, if it exists, and a boolean indicating if the annotation was found.
func GetFirstAnnotationOr ¶
GetFirstAnnotationOr returns the first annotation for the key, if it exists, or the default value given.
func Int16Var ¶
Int16Var creates a pflag.Flag.
func Int16VarP ¶
func Int16VarP(f *pflag.FlagSet, p *int16, name, shorthand string, value int16, usage string) *pflag.Flag
Int16VarP creates a pflag.Flag.
func Int32SliceVar ¶
func Int32SliceVar(f *pflag.FlagSet, p *[]int32, name string, value []int32, usage string) *pflag.Flag
Int32SliceVar creates a pflag.Flag.
func Int32SliceVarP ¶
func Int32SliceVarP(f *pflag.FlagSet, p *[]int32, name, shorthand string, value []int32, usage string) *pflag.Flag
Int32SliceVarP creates a pflag.Flag.
func Int32Var ¶
Int32Var creates a pflag.Flag.
func Int32VarP ¶
func Int32VarP(f *pflag.FlagSet, p *int32, name, shorthand string, value int32, usage string) *pflag.Flag
Int32VarP creates a pflag.Flag.
func Int64SliceVar ¶
func Int64SliceVar(f *pflag.FlagSet, p *[]int64, name string, value []int64, usage string) *pflag.Flag
Int64SliceVar creates a pflag.Flag.
func Int64SliceVarP ¶
func Int64SliceVarP(f *pflag.FlagSet, p *[]int64, name, shorthand string, value []int64, usage string) *pflag.Flag
Int64SliceVarP creates a pflag.Flag.
func Int64Var ¶
Int64Var creates a pflag.Flag.
func Int64VarP ¶
func Int64VarP(f *pflag.FlagSet, p *int64, name, shorthand string, value int64, usage string) *pflag.Flag
Int64VarP creates a pflag.Flag.
func Int8Var ¶
Int8Var creates a pflag.Flag.
func Int8VarP ¶
func Int8VarP(f *pflag.FlagSet, p *int8, name, shorthand string, value int8, usage string) *pflag.Flag
Int8VarP creates a pflag.Flag.
func IntSliceVar ¶
IntSliceVar creates a pflag.Flag.
func IntSliceVarP ¶
func IntSliceVarP(f *pflag.FlagSet, p *[]int, name, shorthand string, value []int, usage string) *pflag.Flag
IntSliceVarP creates a pflag.Flag.
func IntVar ¶
IntVar creates a pflag.Flag.
func IntVarP ¶
IntVarP creates a pflag.Flag.
func MergeMapValues ¶
func MergeMapValues[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](f *pflag.Flag, flagValues M1, in M2) M2
MergeMapValues merges the map flag values into the given map.
func ParseEnvOverrides ¶
ParseEnvOverrides overrides the flag from an environment variable, if it has a defined environment variable and the flag was not already set.
ParseEnvOverride should be called flag parsing, otherwise the environment variable will take precedence over the flag's value.
Flag environment variables can be set with SetEnvName. The flag creation functions in pkg/options/flags.go set an environment variable for the flag if Option.Env is set.
If the environment variable cannot be parsed, an error will returned. Errors will be of type EnvParseError which allows the calling function to access the name of the environment variable, its value, and the underlying parse error if needed for error handling.
func SetAnnotation ¶
SetAnnotation sets the flag's annotations for the given key.
func SetEnvName ¶
SetEnvName sets the name of an environment variable used to override the flag's value in the ParseEnvOverrides function.
func SetMapKeysOr ¶
SetMapKeysOr uses values given to a string slice flag to set the keys of a configuration map.
For keys already set in the configuration map, the current value will be preserved.
For keys not found in the configuration map, they will be set to the empty value of T.
func SetMapValuesOr ¶
func SetMapValuesOr[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any]( f *pflag.Flag, flagValues M1, in M2, setter SetFunc[V1, V2]) M2
SetMapValuesOr uses values given to a map-style flag to update a configuration map as defined by the SetFunc.
func StringSliceVar ¶
func StringSliceVar(f *pflag.FlagSet, p *[]string, name string, value []string, usage string) *pflag.Flag
StringSliceVar creates a pflag.Flag.
func StringSliceVarP ¶
func StringSliceVarP(f *pflag.FlagSet, p *[]string, name, shorthand string, value []string, usage string) *pflag.Flag
StringSliceVarP creates a pflag.Flag.
func StringToBoolVar ¶
func StringToBoolVar(f *pflag.FlagSet, p *map[string]bool, name string, value map[string]bool, usage string) *pflag.Flag
StringToBoolVar creates a pflag.Flag.
func StringToBoolVarP ¶
func StringToBoolVarP(f *pflag.FlagSet, p *map[string]bool, name, shorthand string, value map[string]bool, usage string) *pflag.Flag
StringToBoolVarP creates a pflag.Flag.
func StringToInt64Var ¶
func StringToInt64Var(f *pflag.FlagSet, p *map[string]int64, name string, value map[string]int64, usage string) *pflag.Flag
StringToInt64Var creates a pflag.Flag.
func StringToInt64VarP ¶
func StringToInt64VarP(f *pflag.FlagSet, p *map[string]int64, name, shorthand string, value map[string]int64, usage string) *pflag.Flag
StringToInt64VarP creates a pflag.Flag.
func StringToIntVar ¶
func StringToIntVar(f *pflag.FlagSet, p *map[string]int, name string, value map[string]int, usage string) *pflag.Flag
StringToIntVar creates a pflag.Flag.
func StringToIntVarP ¶
func StringToIntVarP(f *pflag.FlagSet, p *map[string]int, name, shorthand string, value map[string]int, usage string) *pflag.Flag
StringToIntVarP creates a pflag.Flag.
func StringToOptStringVar ¶
func StringToOptStringVar(f *pflag.FlagSet, p *map[string]*string, name string, value map[string]*string, usage string) *pflag.Flag
StringToOptStringVar creates a pflag.Flag.
func StringToOptStringVarP ¶
func StringToOptStringVarP(f *pflag.FlagSet, p *map[string]*string, name, shorthand string, value map[string]*string, usage string) *pflag.Flag
StringToOptStringVarP creates a pflag.Flag.
func StringToStringVar ¶
func StringToStringVar(f *pflag.FlagSet, p *map[string]string, name string, value map[string]string, usage string) *pflag.Flag
StringToStringVar creates a pflag.Flag.
func StringToStringVarP ¶
func StringToStringVarP(f *pflag.FlagSet, p *map[string]string, name, shorthand string, value map[string]string, usage string) *pflag.Flag
StringToStringVarP creates a pflag.Flag.
func StringVar ¶
StringVar creates a pflag.Flag.
func StringVarP ¶
func StringVarP(f *pflag.FlagSet, p *string, name, shorthand string, value string, usage string) *pflag.Flag
StringVarP creates a pflag.Flag.
func Uint16Var ¶
Uint16Var creates a pflag.Flag.
func Uint16VarP ¶
func Uint16VarP(f *pflag.FlagSet, p *uint16, name, shorthand string, value uint16, usage string) *pflag.Flag
Uint16VarP creates a pflag.Flag.
func Uint32Var ¶
Uint32Var creates a pflag.Flag.
func Uint32VarP ¶
func Uint32VarP(f *pflag.FlagSet, p *uint32, name, shorthand string, value uint32, usage string) *pflag.Flag
Uint32VarP creates a pflag.Flag.
func Uint64Var ¶
Uint64Var creates a pflag.Flag.
func Uint64VarP ¶
func Uint64VarP(f *pflag.FlagSet, p *uint64, name, shorthand string, value uint64, usage string) *pflag.Flag
Uint64VarP creates a pflag.Flag.
func Uint8Var ¶
Uint8Var creates a pflag.Flag.
func Uint8VarP ¶
func Uint8VarP(f *pflag.FlagSet, p *uint8, name, shorthand string, value uint8, usage string) *pflag.Flag
Uint8VarP creates a pflag.Flag.
func UintSliceVar ¶
UintSliceVar creates a pflag.Flag.
func UintSliceVarP ¶
func UintSliceVarP(f *pflag.FlagSet, p *[]uint, name, shorthand string, value []uint, usage string) *pflag.Flag
UintSliceVarP creates a pflag.Flag.
func UintVar ¶
UintVar creates a pflag.Flag.
func UintVarP ¶
func UintVarP(f *pflag.FlagSet, p *uint, name, shorthand string, value uint, usage string) *pflag.Flag
UintVarP creates a pflag.Flag.
func Var ¶
Var creates a pflag.Flag.
Types ¶
type EnvParseError ¶
type EnvParseError interface {
error
// EnvName produces the invalid environment variable's name.
EnvName() string
// EnvValue produces the invalid environment variable's value.
EnvValue() string
}
EnvParseError represents an environment variable parsing error.
func NewEnvParseError ¶
func NewEnvParseError(envName, envValue string, cause error) EnvParseError
NewEnvParseError creates an environment variable parsing error.
type UsageFormatOptions ¶
type UsageFormatOptions struct {
// Columns sets the column wrapping.
Columns Columns
// Indentation sets the leading indent for each line.
Indentation *string
// FormatFlagName is used to format the name of each flag.
FormatFlagName func(flag *pflag.Flag, name string) string
// FormatType is called to format the type of each flag.
FormatType func(flag *pflag.Flag, typeName string) string
// FormatValue is called to format flag values for defaults and no-op defaults for each flag.
FormatValue func(flag *pflag.Flag, value string) string
// FormatUsage is called to format the flag usage string.
FormatUsage func(flag *pflag.Flag, usage string) string
// LineFunc overrides all other functions.
LineFunc func(flag *pflag.Flag) (line string, skip bool)
}
UsageFormatOptions is used to format flag usage output.