func ApplyInputSourceValues(cCtx *cli.Context, inputSourceContext InputSourceContext, flags []cli.Flag) error
ApplyInputSourceValues iterates over all provided flags and executes ApplyInputSourceValue on flags implementing the FlagInputSourceExtension interface to initialize these flags to an alternate input source.
func InitInputSource(flags []cli.Flag, createInputSource func() (InputSourceContext, error)) cli.BeforeFunc
InitInputSource is used to to setup an InputSourceContext on a cli.Command Before method. It will create a new input source based on the func provided. If there is no error it will then apply the new input source to any flags that are supported by the input source
func InitInputSourceWithContext(flags []cli.Flag, createInputSource func(cCtx *cli.Context) (InputSourceContext, error)) cli.BeforeFunc
InitInputSourceWithContext is used to to setup an InputSourceContext on a cli.Command Before method. It will create a new input source based on the func provided with potentially using existing cli.Context values to initialize itself. If there is no error it will then apply the new input source to any flags that are supported by the input source
func NewJSONSourceFromFlagFunc(flag string) func(c *cli.Context) (InputSourceContext, error)
NewJSONSourceFromFlagFunc returns a func that takes a cli.Context and returns an InputSourceContext suitable for retrieving config variables from a file containing JSON data with the file name defined by the given flag.
func NewTomlSourceFromFlagFunc(flagFileName string) func(cCtx *cli.Context) (InputSourceContext, error)
NewTomlSourceFromFlagFunc creates a new TOML InputSourceContext from a provided flag name and source context.
func NewYamlSourceFromFlagFunc(flagFileName string) func(cCtx *cli.Context) (InputSourceContext, error)
NewYamlSourceFromFlagFunc creates a new Yaml InputSourceContext from a provided flag name and source context.
BoolFlag is the flag type that wraps cli.BoolFlag to allow for other values to be specified
type BoolFlag struct { *cli.BoolFlag // contains filtered or unexported fields }
func NewBoolFlag(fl *cli.BoolFlag) *BoolFlag
NewBoolFlag creates a new BoolFlag
func (f *BoolFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped BoolFlag.Apply
func (f *BoolFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a Bool value to the flagSet if required
DurationFlag is the flag type that wraps cli.DurationFlag to allow for other values to be specified
type DurationFlag struct { *cli.DurationFlag // contains filtered or unexported fields }
func NewDurationFlag(fl *cli.DurationFlag) *DurationFlag
NewDurationFlag creates a new DurationFlag
func (f *DurationFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped DurationFlag.Apply
func (f *DurationFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a Duration value to the flagSet if required
FlagInputSourceExtension is an extension interface of cli.Flag that allows a value to be set on the existing parsed flags.
type FlagInputSourceExtension interface { cli.Flag ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error }
Float64Flag is the flag type that wraps cli.Float64Flag to allow for other values to be specified
type Float64Flag struct { *cli.Float64Flag // contains filtered or unexported fields }
func NewFloat64Flag(fl *cli.Float64Flag) *Float64Flag
NewFloat64Flag creates a new Float64Flag
func (f *Float64Flag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped Float64Flag.Apply
func (f *Float64Flag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a Float64 value to the flagSet if required
Float64SliceFlag is the flag type that wraps cli.Float64SliceFlag to allow for other values to be specified
type Float64SliceFlag struct { *cli.Float64SliceFlag // contains filtered or unexported fields }
func NewFloat64SliceFlag(fl *cli.Float64SliceFlag) *Float64SliceFlag
NewFloat64SliceFlag creates a new Float64SliceFlag
func (f *Float64SliceFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped Float64SliceFlag.Apply
func (f *Float64SliceFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a Float64Slice value if required
GenericFlag is the flag type that wraps cli.GenericFlag to allow for other values to be specified
type GenericFlag struct { *cli.GenericFlag // contains filtered or unexported fields }
func NewGenericFlag(fl *cli.GenericFlag) *GenericFlag
NewGenericFlag creates a new GenericFlag
func (f *GenericFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped GenericFlag.Apply
func (f *GenericFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a generic value to the flagSet if required
InputSourceContext is an interface used to allow other input sources to be implemented as needed.
Source returns an identifier for the input source. In case of file source it should return path to the file.
type InputSourceContext interface { Source() string Int(name string) (int, error) Int64(name string) (int64, error) Uint(name string) (uint, error) Uint64(name string) (uint64, error) Duration(name string) (time.Duration, error) Float64(name string) (float64, error) String(name string) (string, error) StringSlice(name string) ([]string, error) IntSlice(name string) ([]int, error) Int64Slice(name string) ([]int64, error) Float64Slice(name string) ([]float64, error) Generic(name string) (cli.Generic, error) Bool(name string) (bool, error) // contains filtered or unexported methods }
func NewJSONSource(data []byte) (InputSourceContext, error)
NewJSONSource returns an InputSourceContext suitable for retrieving config variables from raw JSON data.
func NewJSONSourceFromFile(f string) (InputSourceContext, error)
NewJSONSourceFromFile returns an InputSourceContext suitable for retrieving config variables from a file (or url) containing JSON data.
func NewJSONSourceFromReader(r io.Reader) (InputSourceContext, error)
NewJSONSourceFromReader returns an InputSourceContext suitable for retrieving config variables from an io.Reader that returns JSON data.
func NewTomlSourceFromFile(file string) (InputSourceContext, error)
NewTomlSourceFromFile creates a new TOML InputSourceContext from a filepath.
func NewYamlSourceFromFile(file string) (InputSourceContext, error)
NewYamlSourceFromFile creates a new Yaml InputSourceContext from a filepath.
Int64Flag is the flag type that wraps cli.Int64Flag to allow for other values to be specified
type Int64Flag struct { *cli.Int64Flag // contains filtered or unexported fields }
func NewInt64Flag(fl *cli.Int64Flag) *Int64Flag
NewInt64Flag creates a new Int64Flag
func (f *Int64Flag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped Int64Flag.Apply
func (f *Int64Flag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
Int64SliceFlag is the flag type that wraps cli.Int64SliceFlag to allow for other values to be specified
type Int64SliceFlag struct { *cli.Int64SliceFlag // contains filtered or unexported fields }
func NewInt64SliceFlag(fl *cli.Int64SliceFlag) *Int64SliceFlag
NewInt64SliceFlag creates a new Int64SliceFlag
func (f *Int64SliceFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped Int64SliceFlag.Apply
func (f *Int64SliceFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a Int64Slice value if required
IntFlag is the flag type that wraps cli.IntFlag to allow for other values to be specified
type IntFlag struct { *cli.IntFlag // contains filtered or unexported fields }
func NewIntFlag(fl *cli.IntFlag) *IntFlag
NewIntFlag creates a new IntFlag
func (f *IntFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped IntFlag.Apply
func (f *IntFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a int value to the flagSet if required
IntSliceFlag is the flag type that wraps cli.IntSliceFlag to allow for other values to be specified
type IntSliceFlag struct { *cli.IntSliceFlag // contains filtered or unexported fields }
func NewIntSliceFlag(fl *cli.IntSliceFlag) *IntSliceFlag
NewIntSliceFlag creates a new IntSliceFlag
func (f *IntSliceFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped IntSliceFlag.Apply
func (f *IntSliceFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a IntSlice value if required
MapInputSource implements InputSourceContext to return data from the map that is loaded.
type MapInputSource struct {
// contains filtered or unexported fields
}
func NewMapInputSource(file string, valueMap map[interface{}]interface{}) *MapInputSource
NewMapInputSource creates a new MapInputSource for implementing custom input sources.
func (fsm *MapInputSource) Bool(name string) (bool, error)
Bool returns an bool from the map otherwise returns false
func (fsm *MapInputSource) Duration(name string) (time.Duration, error)
Duration returns a duration from the map if it exists otherwise returns 0
func (fsm *MapInputSource) Float64(name string) (float64, error)
Float64 returns an float64 from the map if it exists otherwise returns 0
func (fsm *MapInputSource) Float64Slice(name string) ([]float64, error)
Float64Slice returns an []float64 from the map if it exists otherwise returns nil
func (fsm *MapInputSource) Generic(name string) (cli.Generic, error)
Generic returns an cli.Generic from the map if it exists otherwise returns nil
func (fsm *MapInputSource) Int(name string) (int, error)
Int returns an int from the map if it exists otherwise returns 0
func (fsm *MapInputSource) Int64(name string) (int64, error)
Int64 returns an int64 from the map if it exists otherwise returns 0
func (fsm *MapInputSource) Int64Slice(name string) ([]int64, error)
Int64Slice returns an []int64 from the map if it exists otherwise returns nil
func (fsm *MapInputSource) IntSlice(name string) ([]int, error)
IntSlice returns an []int from the map if it exists otherwise returns nil
func (fsm *MapInputSource) Source() string
Source returns the path of the source file
func (fsm *MapInputSource) String(name string) (string, error)
String returns a string from the map if it exists otherwise returns an empty string
func (fsm *MapInputSource) StringSlice(name string) ([]string, error)
StringSlice returns an []string from the map if it exists otherwise returns nil
func (fsm *MapInputSource) Uint(name string) (uint, error)
Int64 returns an int64 from the map if it exists otherwise returns 0
func (fsm *MapInputSource) Uint64(name string) (uint64, error)
UInt64 returns an uint64 from the map if it exists otherwise returns 0
PathFlag is the flag type that wraps cli.PathFlag to allow for other values to be specified
type PathFlag struct { *cli.PathFlag // contains filtered or unexported fields }
func NewPathFlag(fl *cli.PathFlag) *PathFlag
NewPathFlag creates a new PathFlag
func (f *PathFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped PathFlag.Apply
func (f *PathFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a Path value to the flagSet if required
StringFlag is the flag type that wraps cli.StringFlag to allow for other values to be specified
type StringFlag struct { *cli.StringFlag // contains filtered or unexported fields }
func NewStringFlag(fl *cli.StringFlag) *StringFlag
NewStringFlag creates a new StringFlag
func (f *StringFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped StringFlag.Apply
func (f *StringFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a String value to the flagSet if required
StringSliceFlag is the flag type that wraps cli.StringSliceFlag to allow for other values to be specified
type StringSliceFlag struct { *cli.StringSliceFlag // contains filtered or unexported fields }
func NewStringSliceFlag(fl *cli.StringSliceFlag) *StringSliceFlag
NewStringSliceFlag creates a new StringSliceFlag
func (f *StringSliceFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped StringSliceFlag.Apply
func (f *StringSliceFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
ApplyInputSourceValue applies a StringSlice value to the flagSet if required
Uint64Flag is the flag type that wraps cli.Uint64Flag to allow for other values to be specified
type Uint64Flag struct { *cli.Uint64Flag // contains filtered or unexported fields }
func NewUint64Flag(fl *cli.Uint64Flag) *Uint64Flag
NewUint64Flag creates a new Uint64Flag
func (f *Uint64Flag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped Uint64Flag.Apply
func (f *Uint64Flag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error
UintFlag is the flag type that wraps cli.UintFlag to allow for other values to be specified
type UintFlag struct { *cli.UintFlag // contains filtered or unexported fields }
func NewUintFlag(fl *cli.UintFlag) *UintFlag
NewUintFlag creates a new UintFlag
func (f *UintFlag) Apply(set *flag.FlagSet) error
Apply saves the flagSet for later usage calls, then calls the wrapped UintFlag.Apply
func (f *UintFlag) ApplyInputSourceValue(cCtx *cli.Context, isc InputSourceContext) error