engine

package
v0.0.49 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsHelpRequested

func IsHelpRequested(err error) bool

IsHelpRequested checks if the error is a HelpRequested sentinel.

func IsVersionRequested

func IsVersionRequested(err error) bool

IsVersionRequested checks if the error is a VersionRequested sentinel

func RequestHelp

func RequestHelp(msg string) error

RequestHelp returns an error with type HelpRequested and the given message.

func RequestVersion

func RequestVersion(msg string) error

RequestVersion returns an error with type VersionRequested and the given message.

Types

type EnvKeyFunc added in v0.0.45

type EnvKeyFunc func(prefix, flagName string) string

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) Arg

func (f *FlagSet) Arg(i int) (string, bool)

func (*FlagSet) Args

func (f *FlagSet) Args() []string

func (*FlagSet) AttachToAllOrNoneGroup added in v0.0.36

func (f *FlagSet) AttachToAllOrNoneGroup(bf *core.BaseFlag, group string)

AttachToAllOrNoneGroup attaches a flag to a require-together group.

func (*FlagSet) AttachToOneOfGroup added in v0.0.36

func (f *FlagSet) AttachToOneOfGroup(bf *core.BaseFlag, group string)

func (*FlagSet) Authors

func (f *FlagSet) Authors(s string)

func (*FlagSet) Bool

func (f *FlagSet) Bool(name string, def bool, usage string) *scalar.BoolFlag

Bool defines a bool flag.

func (*FlagSet) BoolVar

func (f *FlagSet) BoolVar(ptr *bool, name string, def bool, usage string) *scalar.BoolFlag

BoolVar defines a bool flag.

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 (f *FlagSet) CounterVar(ptr *int, name string, def int, usage string) *scalar.CounterFlag

CounterVar defines a counter flag.

func (*FlagSet) DefaultDelimiter

func (f *FlagSet) DefaultDelimiter() string

func (*FlagSet) DescIndent added in v0.0.23

func (f *FlagSet) DescIndent() int

func (*FlagSet) DescWidth added in v0.0.23

func (f *FlagSet) DescWidth() int

func (*FlagSet) Description

func (f *FlagSet) Description(s string)

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 (f *FlagSet) DynamicAutoUsageColumn(padding int) int

func (*FlagSet) DynamicGroup

func (f *FlagSet) DynamicGroup(name string) *dynamic.Group

func (*FlagSet) DynamicGroups added in v0.0.9

func (f *FlagSet) DynamicGroups() []*dynamic.Group

func (*FlagSet) DynamicUsageColumn added in v0.0.25

func (f *FlagSet) DynamicUsageColumn() int

func (*FlagSet) DynamicUsageIndent added in v0.0.25

func (f *FlagSet) DynamicUsageIndent() int

func (*FlagSet) DynamicUsageNote added in v0.0.23

func (f *FlagSet) DynamicUsageNote() string

func (*FlagSet) DynamicUsageWidth added in v0.0.25

func (f *FlagSet) DynamicUsageWidth() int

func (*FlagSet) EnvKeyForFlag added in v0.0.45

func (f *FlagSet) EnvKeyForFlag(name string) string

func (*FlagSet) EnvPrefix

func (f *FlagSet) EnvPrefix(prefix string)

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 (f *FlagSet) Globaldelimiter(s string)

func (*FlagSet) HelpText added in v0.0.45

func (f *FlagSet) HelpText(s string)

func (*FlagSet) HideEnvs

func (f *FlagSet) HideEnvs()

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 (f *FlagSet) IgnoreInvalidEnv(enable bool)

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) IntVar

func (f *FlagSet) IntVar(ptr *int, name string, def int, usage string) *scalar.ScalarFlag[int]

IntVar defines an int flag.

func (*FlagSet) LookupFlag added in v0.0.19

func (f *FlagSet) LookupFlag(name string) *core.BaseFlag

func (*FlagSet) Name

func (f *FlagSet) Name() string

func (*FlagSet) Note

func (f *FlagSet) Note(s string)

func (*FlagSet) NoteIndent added in v0.0.23

func (f *FlagSet) NoteIndent() int

func (*FlagSet) NoteWidth added in v0.0.23

func (f *FlagSet) NoteWidth() int

func (*FlagSet) OneOfGroups added in v0.0.36

func (f *FlagSet) OneOfGroups() []*core.OneOfGroupGroup

func (*FlagSet) OrderedDynamicGroups added in v0.0.19

func (f *FlagSet) OrderedDynamicGroups() []*dynamic.Group

func (*FlagSet) OrderedStaticFlags added in v0.0.19

func (f *FlagSet) OrderedStaticFlags() []*core.BaseFlag

func (*FlagSet) Output

func (f *FlagSet) Output() io.Writer

func (*FlagSet) Parse

func (f *FlagSet) Parse(args []string) error

Parse parses CLI arguments, env vars, built-in help/version, and validations.

func (*FlagSet) PrintAuthors

func (f *FlagSet) PrintAuthors(w io.Writer)

PrintAuthors writes usage author heading.

func (*FlagSet) PrintDescription

func (f *FlagSet) PrintDescription(w io.Writer, indent, maxWidth int)

PrintDescription renders description block above flags.

func (*FlagSet) PrintDynamicDefaults added in v0.0.23

func (f *FlagSet) PrintDynamicDefaults(w io.Writer, indent, startCol, maxWidth int)

PrintDynamicDefaults renders all dynamic groups.

func (*FlagSet) PrintNotes

func (f *FlagSet) PrintNotes(w io.Writer, indent, maxWidth int)

PrintNotes renders notes block below flags.

func (*FlagSet) PrintStaticDefaults added in v0.0.23

func (f *FlagSet) PrintStaticDefaults(w io.Writer, indent, startCol, maxWidth int)

PrintStaticDefaults renders all statically registered flags.

func (*FlagSet) PrintTitle

func (f *FlagSet) PrintTitle(w io.Writer)

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) RegisterFlag

func (f *FlagSet) RegisterFlag(name string, bf *core.BaseFlag)

func (*FlagSet) RequirePositional

func (f *FlagSet) RequirePositional(n int)

func (*FlagSet) SetDescIndent added in v0.0.23

func (f *FlagSet) SetDescIndent(n int)

func (*FlagSet) SetDescWidth added in v0.0.23

func (f *FlagSet) SetDescWidth(max int)

func (*FlagSet) SetDynamicUsageColumn added in v0.0.25

func (f *FlagSet) SetDynamicUsageColumn(col int)

func (*FlagSet) SetDynamicUsageIndent added in v0.0.25

func (f *FlagSet) SetDynamicUsageIndent(n int)

func (*FlagSet) SetDynamicUsageNote added in v0.0.23

func (f *FlagSet) SetDynamicUsageNote(s string)

func (*FlagSet) SetDynamicUsageWidth added in v0.0.25

func (f *FlagSet) SetDynamicUsageWidth(max int)

func (*FlagSet) SetEnvKeyFunc added in v0.0.45

func (f *FlagSet) SetEnvKeyFunc(fn EnvKeyFunc)

func (*FlagSet) SetGetEnvFn

func (f *FlagSet) SetGetEnvFn(fn func(string) string)

func (*FlagSet) SetNoteIndent added in v0.0.23

func (f *FlagSet) SetNoteIndent(n int)

func (*FlagSet) SetNoteWidth added in v0.0.23

func (f *FlagSet) SetNoteWidth(max int)

func (*FlagSet) SetOutput

func (f *FlagSet) SetOutput(w io.Writer)

func (*FlagSet) SetPositionalFinalize added in v0.0.49

func (f *FlagSet) SetPositionalFinalize(fn func(string) string)

func (*FlagSet) SetPositionalValidate added in v0.0.49

func (f *FlagSet) SetPositionalValidate(fn func(string) error)

func (*FlagSet) SetStaticUsageColumn added in v0.0.25

func (f *FlagSet) SetStaticUsageColumn(col int)

func (*FlagSet) SetStaticUsageIndent added in v0.0.25

func (f *FlagSet) SetStaticUsageIndent(n int)

func (*FlagSet) SetStaticUsageNote added in v0.0.23

func (f *FlagSet) SetStaticUsageNote(s string)

func (*FlagSet) SetStaticUsageWidth added in v0.0.25

func (f *FlagSet) SetStaticUsageWidth(maxWidth int)

func (*FlagSet) SortedFlags added in v0.0.20

func (f *FlagSet) SortedFlags(enable bool)

func (*FlagSet) SortedGroups added in v0.0.20

func (f *FlagSet) SortedGroups(enable bool)

func (*FlagSet) StaticAutoUsageColumn added in v0.0.23

func (f *FlagSet) StaticAutoUsageColumn(padding int) int

func (*FlagSet) StaticUsageColumn added in v0.0.25

func (f *FlagSet) StaticUsageColumn() int

func (*FlagSet) StaticUsageIndent added in v0.0.25

func (f *FlagSet) StaticUsageIndent() int

func (*FlagSet) StaticUsageNote added in v0.0.23

func (f *FlagSet) StaticUsageNote() string

func (*FlagSet) StaticUsageWidth added in v0.0.25

func (f *FlagSet) StaticUsageWidth() int

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) Title

func (f *FlagSet) Title(s string)

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) Version

func (f *FlagSet) Version(s string)

func (*FlagSet) VersionText added in v0.0.45

func (f *FlagSet) VersionText(s string)

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.

Jump to

Keyboard shortcuts

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