flagutil

package
v0.8.17 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2026 License: MPL-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidSyntax         = errors.New("invalid syntax")
	ErrRequiredArgHasDefault = errors.New("required ARG cannot have a default value")
	ErrGlobalArgNotInBase    = errors.New("global ARG can only be set in the base target")
)

Functions

func BuildArgMatrix

func BuildArgMatrix(args []string) ([][]string, error)

BuildArgMatrix builds a 2-dimensional slice of arguments that contains all combinations.

func GetArgsCopy

func GetArgsCopy(cmd spec.Command) []string

func IsInParamsForm

func IsInParamsForm(str string) bool

func ParseArgArgs

func ParseArgArgs(
	ctx context.Context, cmd spec.Command, isBaseTarget bool, explicitGlobalFeature bool,
) (commandflag.ArgOpts, string, *string, error)

ParseArgArgs parses the ARG command's arguments and returns the argOpts, key, value (or nil if missing), or error.

func ParseArgs

func ParseArgs(command string, data any, args []string) ([]string, error)

ParseArgs parses flags and args from a command string.

func ParseArgsCleaned

func ParseArgsCleaned(cmdName string, opts any, args []string) ([]string, error)

func ParseArgsWithValueModifier

func ParseArgsWithValueModifier(
	command string, data any, args []string, argumentModFunc ArgumentModFunc,
) ([]string, error)

ParseArgsWithValueModifier parses flags and args from a command string; it accepts an optional argumentModFunc which is called before each flag value is parsed, and allows one to change the value. if the flag value.

func ParseArgsWithValueModifierAndOptions

func ParseArgsWithValueModifierAndOptions(
	command string, data any, args []string, argumentModFunc ArgumentModFunc, parserOptions flags.Options,
) ([]string, error)

ParseArgsWithValueModifierAndOptions is similar to ParseArgsWithValueModifier, but allows changing the parser options.

func ParseArgsWithValueModifierCleaned

func ParseArgsWithValueModifierCleaned(
	cmdName string, opts any, args []string, argumentModFunc ArgumentModFunc,
) ([]string, error)

func ParseImageNameAndAttrs

func ParseImageNameAndAttrs(s string) (string, map[string]string, error)

func ParseLoad

func ParseLoad(loadStr string) (image string, target string, extraArgs []string, err error)

ParseLoad splits a --load value into the image, target, & extra args. Example: --load my-image=(+target --arg1 foo --arg2=bar).

func ParseParams

func ParseParams(str string) (string, []string, error)

ParseParams turns "(+target --flag=something)" into "+target" and []string{"--flag=something"}, or "\"(+target --flag=something)\"" into "+target" and []string{"--flag=something"}.

func SplitFlagString

func SplitFlagString(value cli.StringSlice) []string

SplitFlagString would return an array of values from the StringSlice, whether it's passed using multiple occuranced of the flag or with the values passed with a command. For example:

--platform linux/amd64 --platform linux/arm64 and --platform "linux/amd64,linux/arm64"

Types

type ArgumentModFunc

type ArgumentModFunc func(flagName string, opt *flags.Option, flagVal *string) (*string, error)

ArgumentModFunc accepts a flagName which corresponds to the long flag name, and a pointer to a flag value. The pointer is nil if no flag was given. the function returns a new pointer set to nil if one wants to pretend as if no value was given, or a pointer to a new value which will be parsed. Note: this was created to allow passing --no-cache=$SOME_VALUE; where we must expand $SOME_VALUE into a true/false value before it is parsed. If this feature is used extensively, then it might be time to completely fork go-flags with a version where we can include control over expansion struct tags.

type ByteSizeValue

type ByteSizeValue uint64

func (*ByteSizeValue) Set

func (b *ByteSizeValue) Set(s string) error

func (*ByteSizeValue) String

func (b *ByteSizeValue) String() string

type Duration

type Duration time.Duration

Duration implements cli.GenericFlag methods to support time.Duration with days, e.g. 1d.

func (*Duration) Set

func (d *Duration) Set(value string) error

func (*Duration) String

func (d *Duration) String() string

Jump to

Keyboard shortcuts

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