Documentation
¶
Index ¶
- func IsHelpRequested(err error) bool
- func IsVersionRequested(err error) bool
- func RequestHelp(msg string) error
- func RequestVersion(msg string) error
- type ErrorHandling
- type FlagPrintMode
- type FlagSet
- func (f *FlagSet) AddGroup(name string, g *core.MutualGroup)
- func (f *FlagSet) Arg(i int) (string, bool)
- func (f *FlagSet) Args() []string
- func (f *FlagSet) AttachToGroup(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) Description(s string)
- func (f *FlagSet) DescriptionIndent(indent int)
- func (f *FlagSet) DescriptionMaxLen(line int)
- 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) DynamicGroup(name string) *dynamic.Group
- func (f *FlagSet) DynamicGroups() []*dynamic.Group
- 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) GetGroup(name string) *core.MutualGroup
- func (f *FlagSet) Globaldelimiter(s string)
- func (f *FlagSet) Groups() []*core.MutualGroup
- 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) Name() string
- func (f *FlagSet) Note(s string)
- func (f *FlagSet) Output() io.Writer
- func (f *FlagSet) Parse(args []string) error
- func (f *FlagSet) PrintAuthors(w io.Writer)
- func (f *FlagSet) PrintDefaults()
- func (f *FlagSet) PrintDescription(w io.Writer, width int)
- func (f *FlagSet) PrintNotes(w io.Writer, width 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) SetGetEnvFn(fn func(string) string)
- func (f *FlagSet) SetOutput(w io.Writer)
- func (f *FlagSet) Sorted(enable bool)
- 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)
- 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 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 // Only short flags (e.g., -v) PrintLong // Only long flags (e.g., --verbose) PrintBoth // Combined short|long (e.g., -v|--verbose) PrintFlags // Just "Usage: [flags]" PrintNone // No usage tokens shown )
type FlagSet ¶
type FlagSet struct {
Usage func() // Usage is the customizable function for printing usage. Defaults to printing title, description, flags, and notes.
// 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) AddGroup ¶
func (f *FlagSet) AddGroup(name string, g *core.MutualGroup)
AddGroup manually adds a mutual group.
func (*FlagSet) AttachToGroup ¶
AttachToGroup connects a flag to a mutual exclusion group.
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 ¶
func (*FlagSet) DefaultDelimiter ¶
DefaultDelimiter returns the current default delimiter.
func (*FlagSet) Description ¶
Description sets the prolog text shown above the flags.
func (*FlagSet) DescriptionIndent ¶
DescriptionIndent sets the number of spaces before descriptions.
func (*FlagSet) DescriptionMaxLen ¶
DescriptionMaxLen sets the maximum line width for wrapped descriptions.
func (*FlagSet) DisableHelp ¶
func (f *FlagSet) DisableHelp()
DisableHelp disables the automatic --help flag.
func (*FlagSet) DisableVersion ¶
func (f *FlagSet) DisableVersion()
DisableVersion disables the automatic --version flag.
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) DynamicGroup ¶
DynamicGroup creates a new dynamic group with the given prefix.
func (*FlagSet) DynamicGroups ¶ added in v0.0.9
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) GetGroup ¶
func (f *FlagSet) GetGroup(name string) *core.MutualGroup
GetGroup returns a mutual exclusion group by name (creating it if necessary).
func (*FlagSet) Globaldelimiter ¶
Globaldelimiter sets the delimiter used for slice flags.
func (*FlagSet) Groups ¶
func (f *FlagSet) Groups() []*core.MutualGroup
Groups returns all mutual exclusion groups.
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 ¶
IgnoreInvalidEnv controls whether unknown environment values cause errors.
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) Parse ¶
Parse parses CLI arguments, env vars, built-in help/version, and validations.
func (*FlagSet) PrintAuthors ¶
PrintAuthors writes the usage authors heading.
func (*FlagSet) PrintDefaults ¶
func (f *FlagSet) PrintDefaults()
PrintDefaults prints all visible flags with their descriptions.
func (*FlagSet) PrintDescription ¶
PrintDescription renders the prolog text above flags.
func (*FlagSet) PrintNotes ¶
PrintNotes renders the epilog text below flags.
func (*FlagSet) PrintTitle ¶
PrintTitle writes the usage title heading.
func (*FlagSet) PrintUsage ¶
func (f *FlagSet) PrintUsage(w io.Writer, mode FlagPrintMode)
PrintUsage prints a usage line including flags depending on mode.
func (*FlagSet) RegisterFlag ¶
RegisterFlag registers a static flag.
func (*FlagSet) RequirePositional ¶
RequirePositional sets how many positional arguments are required.
func (*FlagSet) SetGetEnvFn ¶
SetGetEnvFn sets a custom environment lookup function.
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.
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.