Documentation
¶
Index ¶
- func IsHelpRequested(err error) bool
- func IsVersionRequested(err error) bool
- func RequestHelp(msg string) error
- func RequestVersion(msg string) error
- type EnvKeyFunc
- type ErrorHandling
- type FlagPrintMode
- type FlagSet
- func (f *FlagSet) AddAllOrNoneGroup(name string, g *core.AllOrNoneGroup)
- func (f *FlagSet) AddOneOfGroup(name string, g *core.OneOfGroupGroup)
- func (f *FlagSet) AllOrNoneGroups() []*core.AllOrNoneGroup
- func (f *FlagSet) Arg(i int) (string, bool)
- func (f *FlagSet) Args() []string
- func (f *FlagSet) AttachToAllOrNoneGroup(bf *core.BaseFlag, group string)
- func (f *FlagSet) AttachToOneOfGroup(bf *core.BaseFlag, group string)
- func (f *FlagSet) Authors(s string)
- func (f *FlagSet) Bool(name string, def bool, usage string) *scalar.BoolFlag
- func (f *FlagSet) BoolVar(ptr *bool, name string, def bool, usage string) *scalar.BoolFlag
- func (f *FlagSet) BytesSliceVar(ptr *[]uint64, name string, def []uint64, usage string) *slice.SliceFlag[uint64]
- func (f *FlagSet) BytesVar(ptr *uint64, name string, def uint64, usage string) *scalar.ScalarFlag[uint64]
- func (f *FlagSet) CounterVar(ptr *int, name string, def int, usage string) *scalar.CounterFlag
- func (f *FlagSet) DefaultDelimiter() string
- func (f *FlagSet) DescIndent() int
- func (f *FlagSet) DescWidth() int
- func (f *FlagSet) Description(s string)
- func (f *FlagSet) DisableHelp()
- func (f *FlagSet) DisableVersion()
- func (f *FlagSet) DurationSliceVar(ptr *[]time.Duration, name string, def []time.Duration, usage string) *slice.SliceFlag[time.Duration]
- func (f *FlagSet) DurationVar(ptr *time.Duration, name string, def time.Duration, usage string) *scalar.ScalarFlag[time.Duration]
- func (f *FlagSet) DynamicAutoUsageColumn(padding int) int
- func (f *FlagSet) DynamicGroup(name string) *dynamic.Group
- func (f *FlagSet) DynamicGroups() []*dynamic.Group
- func (f *FlagSet) DynamicUsageColumn() int
- func (f *FlagSet) DynamicUsageIndent() int
- func (f *FlagSet) DynamicUsageNote() string
- func (f *FlagSet) DynamicUsageWidth() int
- func (f *FlagSet) EnvKeyForFlag(name string) string
- func (f *FlagSet) EnvPrefix(prefix string)
- func (f *FlagSet) FileSliceVar(ptr *[]*os.File, name string, def []*os.File, usage string) *slice.SliceFlag[*os.File]
- func (f *FlagSet) FileVar(ptr **os.File, name string, def *os.File, usage string) *scalar.ScalarFlag[*os.File]
- func (f *FlagSet) Float32SliceVar(ptr *[]float32, name string, def []float32, usage string) *slice.SliceFlag[float32]
- func (f *FlagSet) Float32Var(ptr *float32, name string, def float32, usage string) *scalar.ScalarFlag[float32]
- func (f *FlagSet) Float64SliceVar(ptr *[]float64, name string, def []float64, usage string) *slice.SliceFlag[float64]
- func (f *FlagSet) Float64Var(ptr *float64, name string, def float64, usage string) *scalar.ScalarFlag[float64]
- func (f *FlagSet) GetAllOrNoneGroup(name string) *core.AllOrNoneGroup
- func (f *FlagSet) GetOneOfGroup(name string) *core.OneOfGroupGroup
- func (f *FlagSet) Globaldelimiter(s string)
- func (f *FlagSet) HelpText(s string)
- func (f *FlagSet) HideEnvs()
- func (f *FlagSet) IPSliceVar(ptr *[]net.IP, name string, def []net.IP, usage string) *slice.SliceFlag[net.IP]
- func (f *FlagSet) IPVar(ptr *net.IP, name string, def net.IP, usage string) *scalar.ScalarFlag[net.IP]
- func (f *FlagSet) IPv4MaskSliceVar(ptr *[]net.IPMask, name string, def []net.IPMask, usage string) *slice.SliceFlag[net.IPMask]
- func (f *FlagSet) IPv4MaskVar(ptr *net.IPMask, name string, def net.IPMask, usage string) *scalar.ScalarFlag[net.IPMask]
- func (f *FlagSet) IgnoreInvalidEnv(enable bool)
- func (f *FlagSet) IntSliceVar(ptr *[]int, name string, def []int, usage string) *slice.SliceFlag[int]
- func (f *FlagSet) IntVar(ptr *int, name string, def int, usage string) *scalar.ScalarFlag[int]
- func (f *FlagSet) LookupFlag(name string) *core.BaseFlag
- func (f *FlagSet) Name() string
- func (f *FlagSet) Note(s string)
- func (f *FlagSet) NoteIndent() int
- func (f *FlagSet) NoteWidth() int
- func (f *FlagSet) OneOfGroups() []*core.OneOfGroupGroup
- func (f *FlagSet) OrderedDynamicGroups() []*dynamic.Group
- func (f *FlagSet) OrderedStaticFlags() []*core.BaseFlag
- func (f *FlagSet) Output() io.Writer
- func (f *FlagSet) Parse(args []string) error
- func (f *FlagSet) PrintAuthors(w io.Writer)
- func (f *FlagSet) PrintDescription(w io.Writer, indent, maxWidth int)
- func (f *FlagSet) PrintDynamicDefaults(w io.Writer, indent, startCol, maxWidth int)
- func (f *FlagSet) PrintNotes(w io.Writer, indent, maxWidth int)
- func (f *FlagSet) PrintStaticDefaults(w io.Writer, indent, startCol, maxWidth int)
- func (f *FlagSet) PrintTitle(w io.Writer)
- func (f *FlagSet) PrintUsage(w io.Writer, mode FlagPrintMode)
- func (f *FlagSet) RegisterFlag(name string, bf *core.BaseFlag)
- func (f *FlagSet) RequirePositional(n int)
- func (f *FlagSet) SetDescIndent(n int)
- func (f *FlagSet) SetDescWidth(max int)
- func (f *FlagSet) SetDynamicUsageColumn(col int)
- func (f *FlagSet) SetDynamicUsageIndent(n int)
- func (f *FlagSet) SetDynamicUsageNote(s string)
- func (f *FlagSet) SetDynamicUsageWidth(max int)
- func (f *FlagSet) SetEnvKeyFunc(fn EnvKeyFunc)
- func (f *FlagSet) SetGetEnvFn(fn func(string) string)
- func (f *FlagSet) SetNoteIndent(n int)
- func (f *FlagSet) SetNoteWidth(max int)
- func (f *FlagSet) SetOutput(w io.Writer)
- func (f *FlagSet) SetPositionalFinalize(fn func(string) string)
- func (f *FlagSet) SetPositionalValidate(fn func(string) error)
- func (f *FlagSet) SetStaticUsageColumn(col int)
- func (f *FlagSet) SetStaticUsageIndent(n int)
- func (f *FlagSet) SetStaticUsageNote(s string)
- func (f *FlagSet) SetStaticUsageWidth(maxWidth int)
- func (f *FlagSet) SortedFlags(enable bool)
- func (f *FlagSet) SortedGroups(enable bool)
- func (f *FlagSet) StaticAutoUsageColumn(padding int) int
- func (f *FlagSet) StaticUsageColumn() int
- func (f *FlagSet) StaticUsageIndent() int
- func (f *FlagSet) StaticUsageNote() string
- func (f *FlagSet) StaticUsageWidth() int
- func (f *FlagSet) StringSliceVar(ptr *[]string, name string, def []string, usage string) *slice.SliceFlag[string]
- func (f *FlagSet) StringVar(ptr *string, name string, def string, usage string) *scalar.ScalarFlag[string]
- func (f *FlagSet) TCPAddrSliceVar(ptr *[]*net.TCPAddr, name string, def []*net.TCPAddr, usage string) *slice.SliceFlag[*net.TCPAddr]
- func (f *FlagSet) TCPAddrVar(ptr **net.TCPAddr, name string, def *net.TCPAddr, usage string) *scalar.ScalarFlag[*net.TCPAddr]
- func (f *FlagSet) TimeSliceVar(ptr *[]time.Time, name string, def []time.Time, usage string) *slice.SliceFlag[time.Time]
- func (f *FlagSet) TimeVar(ptr *time.Time, name string, def time.Time, usage string) *scalar.ScalarFlag[time.Time]
- func (f *FlagSet) Title(s string)
- func (f *FlagSet) URLSliceVar(ptr *[]*url.URL, name string, def []*url.URL, usage string) *slice.SliceFlag[*url.URL]
- func (f *FlagSet) URLVar(ptr **url.URL, name string, def *url.URL, usage string) *scalar.ScalarFlag[*url.URL]
- func (f *FlagSet) Version(s string)
- func (f *FlagSet) VersionText(s string)
- type HelpRequested
- type VersionRequested
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsHelpRequested ¶
IsHelpRequested checks if the error is a HelpRequested sentinel.
func IsVersionRequested ¶
IsVersionRequested checks if the error is a VersionRequested sentinel
func RequestHelp ¶
RequestHelp returns an error with type HelpRequested and the given message.
func RequestVersion ¶
RequestVersion returns an error with type VersionRequested and the given message.
Types ¶
type EnvKeyFunc ¶ added in v0.0.45
EnvKeyFunc derives the environment variable key for a flag. If it returns "", the flag won't be loaded from ENV unless BaseFlag.EnvKey is set.
func NewReplacerEnvKeyFunc ¶ added in v0.0.45
func NewReplacerEnvKeyFunc(replacer *strings.Replacer, upper bool) EnvKeyFunc
NewReplacerEnvKeyFunc builds an EnvKeyFunc that: - returns "" when prefix is empty - applies the given replacer to the flag name - joins prefix + "_" + transformed name - upper-cases the result (if upper is true)
type ErrorHandling ¶
type ErrorHandling int
const ( // ContinueOnError will return an err from Parse() if an error is found ContinueOnError ErrorHandling = iota // ExitOnError will call os.Exit(2) if an error is found when parsing ExitOnError // PanicOnError will panic() if an error is found when parsing flags PanicOnError )
type FlagPrintMode ¶
type FlagPrintMode int
FlagPrintMode defines how usage should be rendered.
const ( PrintShort FlagPrintMode = iota // e.g. -v PrintLong // e.g. --verbose PrintBoth // e.g. -v|--verbose PrintFlags // prints only [flags] PrintNone // prints nothing )
type FlagSet ¶
type FlagSet struct { Usage func() // Custom usage function (optional) // contains filtered or unexported fields }
FlagSet manages the definition, parsing, and usage output of command-line flags.
func NewFlagSet ¶
func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet
NewFlagSet creates a new FlagSet with the given name and error handling policy.
func (*FlagSet) AddAllOrNoneGroup ¶ added in v0.0.36
func (f *FlagSet) AddAllOrNoneGroup(name string, g *core.AllOrNoneGroup)
func (*FlagSet) AddOneOfGroup ¶ added in v0.0.36
func (f *FlagSet) AddOneOfGroup(name string, g *core.OneOfGroupGroup)
func (*FlagSet) AllOrNoneGroups ¶ added in v0.0.36
func (f *FlagSet) AllOrNoneGroups() []*core.AllOrNoneGroup
func (*FlagSet) AttachToAllOrNoneGroup ¶ added in v0.0.36
AttachToAllOrNoneGroup attaches a flag to a require-together group.
func (*FlagSet) AttachToOneOfGroup ¶ added in v0.0.36
func (*FlagSet) BytesSliceVar ¶
func (f *FlagSet) BytesSliceVar(ptr *[]uint64, name string, def []uint64, usage string) *slice.SliceFlag[uint64]
BytesVar defines a uint64 “bytes” flag (e.g. "1GB", "512M").
func (*FlagSet) BytesVar ¶
func (f *FlagSet) BytesVar(ptr *uint64, name string, def uint64, usage string) *scalar.ScalarFlag[uint64]
BytesVar defines a uint64 “bytes” flag (e.g. "1GB", "512M").
func (*FlagSet) CounterVar ¶
CounterVar defines a counter flag.
func (*FlagSet) DefaultDelimiter ¶
func (*FlagSet) DescIndent ¶ added in v0.0.23
func (*FlagSet) Description ¶
func (*FlagSet) DisableHelp ¶
func (f *FlagSet) DisableHelp()
func (*FlagSet) DisableVersion ¶
func (f *FlagSet) DisableVersion()
func (*FlagSet) DurationSliceVar ¶
func (f *FlagSet) DurationSliceVar(ptr *[]time.Duration, name string, def []time.Duration, usage string) *slice.SliceFlag[time.Duration]
DurationVar defines a time.Duration flag.
func (*FlagSet) DurationVar ¶
func (f *FlagSet) DurationVar(ptr *time.Duration, name string, def time.Duration, usage string) *scalar.ScalarFlag[time.Duration]
DurationVar defines a time.Duration flag.
func (*FlagSet) DynamicAutoUsageColumn ¶ added in v0.0.23
func (*FlagSet) DynamicGroups ¶ added in v0.0.9
func (*FlagSet) DynamicUsageColumn ¶ added in v0.0.25
func (*FlagSet) DynamicUsageIndent ¶ added in v0.0.25
func (*FlagSet) DynamicUsageNote ¶ added in v0.0.23
func (*FlagSet) DynamicUsageWidth ¶ added in v0.0.25
func (*FlagSet) EnvKeyForFlag ¶ added in v0.0.45
func (*FlagSet) FileSliceVar ¶
func (f *FlagSet) FileSliceVar(ptr *[]*os.File, name string, def []*os.File, usage string) *slice.SliceFlag[*os.File]
FileVar defines an *os.File flag (opened for reading).
func (*FlagSet) FileVar ¶
func (f *FlagSet) FileVar(ptr **os.File, name string, def *os.File, usage string) *scalar.ScalarFlag[*os.File]
FileVar defines an *os.File flag (opened for reading).
func (*FlagSet) Float32SliceVar ¶
func (f *FlagSet) Float32SliceVar(ptr *[]float32, name string, def []float32, usage string) *slice.SliceFlag[float32]
Float32Var defines a float32 flag.
func (*FlagSet) Float32Var ¶
func (f *FlagSet) Float32Var(ptr *float32, name string, def float32, usage string) *scalar.ScalarFlag[float32]
Float32Var defines a float32 flag.
func (*FlagSet) Float64SliceVar ¶
func (f *FlagSet) Float64SliceVar(ptr *[]float64, name string, def []float64, usage string) *slice.SliceFlag[float64]
Float64Var defines a float64 flag.
func (*FlagSet) Float64Var ¶
func (f *FlagSet) Float64Var(ptr *float64, name string, def float64, usage string) *scalar.ScalarFlag[float64]
Float64Var defines a float64 flag.
func (*FlagSet) GetAllOrNoneGroup ¶ added in v0.0.36
func (f *FlagSet) GetAllOrNoneGroup(name string) *core.AllOrNoneGroup
GetAllOrNoneGroup returns a group that requires all flags to be set together. It creates the group if it doesn't exist.
func (*FlagSet) GetOneOfGroup ¶ added in v0.0.36
func (f *FlagSet) GetOneOfGroup(name string) *core.OneOfGroupGroup
func (*FlagSet) Globaldelimiter ¶
func (*FlagSet) IPSliceVar ¶
func (f *FlagSet) IPSliceVar(ptr *[]net.IP, name string, def []net.IP, usage string) *slice.SliceFlag[net.IP]
IPVar defines a net.IP flag.
func (*FlagSet) IPVar ¶
func (f *FlagSet) IPVar(ptr *net.IP, name string, def net.IP, usage string) *scalar.ScalarFlag[net.IP]
IPVar defines a net.IP flag.
func (*FlagSet) IPv4MaskSliceVar ¶
func (f *FlagSet) IPv4MaskSliceVar(ptr *[]net.IPMask, name string, def []net.IPMask, usage string) *slice.SliceFlag[net.IPMask]
IPv4MaskVar defines a net.IPMask flag.
func (*FlagSet) IPv4MaskVar ¶
func (f *FlagSet) IPv4MaskVar(ptr *net.IPMask, name string, def net.IPMask, usage string) *scalar.ScalarFlag[net.IPMask]
IPv4MaskVar defines a net.IPMask flag.
func (*FlagSet) IgnoreInvalidEnv ¶
func (*FlagSet) IntSliceVar ¶
func (f *FlagSet) IntSliceVar(ptr *[]int, name string, def []int, usage string) *slice.SliceFlag[int]
IntVar defines an int flag.
func (*FlagSet) LookupFlag ¶ added in v0.0.19
func (*FlagSet) NoteIndent ¶ added in v0.0.23
func (*FlagSet) OneOfGroups ¶ added in v0.0.36
func (f *FlagSet) OneOfGroups() []*core.OneOfGroupGroup
func (*FlagSet) OrderedDynamicGroups ¶ added in v0.0.19
func (*FlagSet) OrderedStaticFlags ¶ added in v0.0.19
func (*FlagSet) Parse ¶
Parse parses CLI arguments, env vars, built-in help/version, and validations.
func (*FlagSet) PrintAuthors ¶
PrintAuthors writes usage author heading.
func (*FlagSet) PrintDescription ¶
PrintDescription renders description block above flags.
func (*FlagSet) PrintDynamicDefaults ¶ added in v0.0.23
PrintDynamicDefaults renders all dynamic groups.
func (*FlagSet) PrintNotes ¶
PrintNotes renders notes block below flags.
func (*FlagSet) PrintStaticDefaults ¶ added in v0.0.23
PrintStaticDefaults renders all statically registered flags.
func (*FlagSet) PrintTitle ¶
PrintTitle writes usage title heading.
func (*FlagSet) PrintUsage ¶
func (f *FlagSet) PrintUsage(w io.Writer, mode FlagPrintMode)
PrintUsage prints a usage line depending on mode.
func (*FlagSet) RequirePositional ¶
func (*FlagSet) SetDescIndent ¶ added in v0.0.23
func (*FlagSet) SetDescWidth ¶ added in v0.0.23
func (*FlagSet) SetDynamicUsageColumn ¶ added in v0.0.25
func (*FlagSet) SetDynamicUsageIndent ¶ added in v0.0.25
func (*FlagSet) SetDynamicUsageNote ¶ added in v0.0.23
func (*FlagSet) SetDynamicUsageWidth ¶ added in v0.0.25
func (*FlagSet) SetEnvKeyFunc ¶ added in v0.0.45
func (f *FlagSet) SetEnvKeyFunc(fn EnvKeyFunc)
func (*FlagSet) SetGetEnvFn ¶
func (*FlagSet) SetNoteIndent ¶ added in v0.0.23
func (*FlagSet) SetNoteWidth ¶ added in v0.0.23
func (*FlagSet) SetPositionalFinalize ¶ added in v0.0.49
func (*FlagSet) SetPositionalValidate ¶ added in v0.0.49
func (*FlagSet) SetStaticUsageColumn ¶ added in v0.0.25
func (*FlagSet) SetStaticUsageIndent ¶ added in v0.0.25
func (*FlagSet) SetStaticUsageNote ¶ added in v0.0.23
func (*FlagSet) SetStaticUsageWidth ¶ added in v0.0.25
func (*FlagSet) SortedFlags ¶ added in v0.0.20
func (*FlagSet) SortedGroups ¶ added in v0.0.20
func (*FlagSet) StaticAutoUsageColumn ¶ added in v0.0.23
func (*FlagSet) StaticUsageColumn ¶ added in v0.0.25
func (*FlagSet) StaticUsageIndent ¶ added in v0.0.25
func (*FlagSet) StaticUsageNote ¶ added in v0.0.23
func (*FlagSet) StaticUsageWidth ¶ added in v0.0.25
func (*FlagSet) StringSliceVar ¶
func (f *FlagSet) StringSliceVar(ptr *[]string, name string, def []string, usage string) *slice.SliceFlag[string]
StringVar defines a string flag.
func (*FlagSet) StringVar ¶
func (f *FlagSet) StringVar(ptr *string, name string, def string, usage string) *scalar.ScalarFlag[string]
StringVar defines a string flag.
func (*FlagSet) TCPAddrSliceVar ¶
func (f *FlagSet) TCPAddrSliceVar(ptr *[]*net.TCPAddr, name string, def []*net.TCPAddr, usage string) *slice.SliceFlag[*net.TCPAddr]
TCPAddrVar defines a *net.TCPAddr flag.
func (*FlagSet) TCPAddrVar ¶
func (f *FlagSet) TCPAddrVar(ptr **net.TCPAddr, name string, def *net.TCPAddr, usage string) *scalar.ScalarFlag[*net.TCPAddr]
TCPAddrVar defines a *net.TCPAddr flag.
func (*FlagSet) TimeSliceVar ¶
func (f *FlagSet) TimeSliceVar(ptr *[]time.Time, name string, def []time.Time, usage string) *slice.SliceFlag[time.Time]
TimeVar defines a time.Time flag (parsed as RFC3339).
func (*FlagSet) TimeVar ¶
func (f *FlagSet) TimeVar(ptr *time.Time, name string, def time.Time, usage string) *scalar.ScalarFlag[time.Time]
TimeVar defines a time.Time flag (parsed as RFC3339).
func (*FlagSet) URLSliceVar ¶
func (f *FlagSet) URLSliceVar(ptr *[]*url.URL, name string, def []*url.URL, usage string) *slice.SliceFlag[*url.URL]
URLVar defines a url.URL flag.
func (*FlagSet) URLVar ¶
func (f *FlagSet) URLVar(ptr **url.URL, name string, def *url.URL, usage string) *scalar.ScalarFlag[*url.URL]
URLVar defines a url.URL flag.
func (*FlagSet) VersionText ¶ added in v0.0.45
type HelpRequested ¶
type HelpRequested struct {
Message string // The full help message to show the user
}
HelpRequested is returned when the built-in help flag (-h or --help) is triggered.
func (*HelpRequested) Error ¶
func (e *HelpRequested) Error() string
Error returns the help message, satisfying the error interface.
type VersionRequested ¶
type VersionRequested struct {
Version string // The version string to show the user
}
VersionRequested is returned when the built-in version flag (--version) is triggered.
func (*VersionRequested) Error ¶
func (e *VersionRequested) Error() string
Error returns the version string, satisfying the error interface.