engine

package
v0.0.12 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2025 License: Apache-2.0 Imports: 17 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 // 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) 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)

func (*FlagSet) Bool

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

func (*FlagSet) BoolVar

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

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

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

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

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) 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) 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 the usage authors heading.

func (*FlagSet) PrintDefaults

func (f *FlagSet) PrintDefaults()

PrintDefaults prints all visible flags with their descriptions.

func (*FlagSet) PrintDescription

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

PrintDescription renders the prolog text above flags.

func (*FlagSet) PrintNotes

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

PrintNotes renders the epilog text below flags.

func (*FlagSet) PrintTitle

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

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

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

func (f *FlagSet) Sorted(enable bool)

Sorted enables or disables sorted help 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