flagutil

package
v0.0.0-...-8fc8d39 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package flagutil defines utilities for registering and parsing command line flags.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BoolFunc

func BoolFunc(f *pflag.FlagSet, name string, usage string, fn func(string) error) *pflag.Flag

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

func BoolSliceVar(f *pflag.FlagSet, p *[]bool, name string, value []bool, usage string) *pflag.Flag

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

func BoolVar(f *pflag.FlagSet, p *bool, name string, value bool, usage string) *pflag.Flag

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

func CountVar(f *pflag.FlagSet, p *int, name string, usage string) *pflag.Flag

CountVar creates a pflag.Flag.

func CountVarP

func CountVarP(f *pflag.FlagSet, p *int, name, shorthand string, usage string) *pflag.Flag

CountVarP creates a pflag.Flag.

func DefaultIsZeroValue

func DefaultIsZeroValue(f *pflag.Flag) bool

DefaultIsZeroValue returns true if the default value for this flag represents a zero value.

This is a best effort guess.

func DurationOr

func DurationOr(f *pflag.Flag, flagValue string, def *metav1.Duration) *metav1.Duration

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

func Float32Var(f *pflag.FlagSet, p *float32, name string, value float32, usage string) *pflag.Flag

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

func Float64Var(f *pflag.FlagSet, p *float64, name string, value float64, usage string) *pflag.Flag

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 Func(f *pflag.FlagSet, name string, usage string, fn func(string) error) *pflag.Flag

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

func GetEnvName(f *pflag.Flag) string

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

func GetFirstAnnotation(f *pflag.Flag, key string) (string, bool)

GetFirstAnnotation returns the first annotation for the key, if it exists, and a boolean indicating if the annotation was found.

func GetFirstAnnotationOr

func GetFirstAnnotationOr(f *pflag.Flag, key string, def string) string

GetFirstAnnotationOr returns the first annotation for the key, if it exists, or the default value given.

func Int16Var

func Int16Var(f *pflag.FlagSet, p *int16, name string, value int16, usage string) *pflag.Flag

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

func Int32Var(f *pflag.FlagSet, p *int32, name string, value int32, usage string) *pflag.Flag

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

func Int64Var(f *pflag.FlagSet, p *int64, name string, value int64, usage string) *pflag.Flag

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

func Int8Var(f *pflag.FlagSet, p *int8, name string, value int8, usage string) *pflag.Flag

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

func IntSliceVar(f *pflag.FlagSet, p *[]int, name string, value []int, usage string) *pflag.Flag

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

func IntVar(f *pflag.FlagSet, p *int, name string, value int, usage string) *pflag.Flag

IntVar creates a pflag.Flag.

func IntVarP

func IntVarP(f *pflag.FlagSet, p *int, name, shorthand string, value int, usage string) *pflag.Flag

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

func ParseEnvOverrides(f *pflag.Flag) error

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

func SetAnnotation(f *pflag.Flag, key string, values ...string)

SetAnnotation sets the flag's annotations for the given key.

func SetEnvName

func SetEnvName(f *pflag.Flag, envName string)

SetEnvName sets the name of an environment variable used to override the flag's value in the ParseEnvOverrides function.

func SetMapKeysOr

func SetMapKeysOr[T any](f *pflag.Flag, flagValue []string, in map[string]T) map[string]T

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

func StringVar(f *pflag.FlagSet, p *string, name string, value string, usage string) *pflag.Flag

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

func Uint16Var(f *pflag.FlagSet, p *uint16, name string, value uint16, usage string) *pflag.Flag

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

func Uint32Var(f *pflag.FlagSet, p *uint32, name string, value uint32, usage string) *pflag.Flag

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

func Uint64Var(f *pflag.FlagSet, p *uint64, name string, value uint64, usage string) *pflag.Flag

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

func Uint8Var(f *pflag.FlagSet, p *uint8, name string, value uint8, usage string) *pflag.Flag

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

func UintSliceVar(f *pflag.FlagSet, p *[]uint, name string, value []uint, usage string) *pflag.Flag

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

func UintVar(f *pflag.FlagSet, p *uint, name string, value uint, usage string) *pflag.Flag

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 ValueOr

func ValueOr[T any](f *pflag.Flag, flagValue T, def T) T

ValueOr returns either the flag value or the default.

func Var

func Var(f *pflag.FlagSet, value pflag.Value, name string, usage string) *pflag.Flag

Var creates a pflag.Flag.

func VarP

func VarP(f *pflag.FlagSet, value pflag.Value, name, shorthand string, usage string) *pflag.Flag

VarP creates a pflag.Flag.

Types

type Columns

type Columns interface {
	Value() int
}

Columns sets the width.

type DynamicColumns

type DynamicColumns func() int

DynamicColumns is a dynamic columns setting.

func (DynamicColumns) Value

func (c DynamicColumns) Value() int

Value implements Columns.

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 SetFunc

type SetFunc[V1, V2 any] func(flagValue V1, entry *V2, ok bool) (skip bool)

SetFunc describes a function to set map values.

type StaticColumns

type StaticColumns int

StaticColumns is a static columns setting.

func (StaticColumns) Value

func (c StaticColumns) Value() int

Value implements Columns.

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.

Jump to

Keyboard shortcuts

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