engine

package
v0.0.22 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 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 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
	// 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 exclusion group.

func (*FlagSet) Arg

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

Arg returns the positional argument at index i.

func (*FlagSet) Args

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

Args returns all remaining positional arguments.

func (*FlagSet) AttachToGroup

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

AttachToGroup connects a flag to a mutual exclusion group.

func (*FlagSet) Authors

func (f *FlagSet) Authors(s string)

Authors sets the usage author block.

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

DefaultDelimiter returns the current default delimiter.

func (*FlagSet) Description

func (f *FlagSet) Description(s string)

Description sets the prolog text shown above the flags.

func (*FlagSet) DescriptionIndent

func (f *FlagSet) DescriptionIndent(indent int)

DescriptionIndent sets the number of spaces before descriptions.

func (*FlagSet) DescriptionMaxLen

func (f *FlagSet) DescriptionMaxLen(line int)

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

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

DynamicGroup creates a new dynamic group with the given prefix.

func (*FlagSet) DynamicGroups added in v0.0.9

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

DynamicGroups returns all dynamic groups in registration order.

func (*FlagSet) EnvPrefix

func (f *FlagSet) EnvPrefix(prefix string)

EnvPrefix sets a prefix to be prepended to all environment variables.

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

func (f *FlagSet) Globaldelimiter(s string)

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

func (f *FlagSet) HideEnvs()

HideEnvs disables environment variable display in help.

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)

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

LookupFlag returns a registered static flag by name.

func (*FlagSet) Name

func (f *FlagSet) Name() string

Name returns the name of the application.

func (*FlagSet) Note

func (f *FlagSet) Note(s string)

Note sets the epilog text shown below the flags.

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

OrderedStaticFlags returns all static flags in sorted order.

func (*FlagSet) Output

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

Output returns the configured help 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) PrintDefaults

func (f *FlagSet) PrintDefaults(w io.Writer, width int)

PrintDefaults prints both static and dynamic flags.

func (*FlagSet) PrintDescription

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

PrintDescription renders description block above flags.

func (*FlagSet) PrintNotes

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

PrintNotes renders notes block below 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)

RegisterFlag registers a static flag.

func (*FlagSet) RequirePositional

func (f *FlagSet) RequirePositional(n int)

RequirePositional sets how many positional arguments are required.

func (*FlagSet) SetGetEnvFn

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

SetGetEnvFn sets a custom environment lookup function.

func (*FlagSet) SetOutput

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

SetOutput sets the writer for help output.

func (*FlagSet) SortedFlags added in v0.0.20

func (f *FlagSet) SortedFlags(enable bool)

SortedFlags enables or disables sorted help output.

func (*FlagSet) SortedGroups added in v0.0.20

func (f *FlagSet) SortedGroups(enable bool)

SortedGroups enables or disables sorted group output.

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)

Title sets the usage section title.

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)

Version sets the version string to enable the --version 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.

Jump to

Keyboard shortcuts

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