package altsrc
import (
"flag"
"github.com/urfave/cli/v2"
)
// BoolFlag is the flag type that wraps cli.BoolFlag to allow
// for other values to be specified
type BoolFlag struct {
*cli.BoolFlag
set *flag.FlagSet
}
// NewBoolFlag creates a new BoolFlag
func NewBoolFlag(fl *cli.BoolFlag) *BoolFlag {
return &BoolFlag{BoolFlag: fl, set: nil}
// Apply saves the flagSet for later usage calls, then calls
// the wrapped BoolFlag.Apply
func (f *BoolFlag) Apply(set *flag.FlagSet) error {
f.set = set
return f.BoolFlag.Apply(set)
// DurationFlag is the flag type that wraps cli.DurationFlag to allow
type DurationFlag struct {
*cli.DurationFlag
// NewDurationFlag creates a new DurationFlag
func NewDurationFlag(fl *cli.DurationFlag) *DurationFlag {
return &DurationFlag{DurationFlag: fl, set: nil}
// the wrapped DurationFlag.Apply
func (f *DurationFlag) Apply(set *flag.FlagSet) error {
return f.DurationFlag.Apply(set)
// Float64Flag is the flag type that wraps cli.Float64Flag to allow
type Float64Flag struct {
*cli.Float64Flag
// NewFloat64Flag creates a new Float64Flag
func NewFloat64Flag(fl *cli.Float64Flag) *Float64Flag {
return &Float64Flag{Float64Flag: fl, set: nil}
// the wrapped Float64Flag.Apply
func (f *Float64Flag) Apply(set *flag.FlagSet) error {
return f.Float64Flag.Apply(set)
// GenericFlag is the flag type that wraps cli.GenericFlag to allow
type GenericFlag struct {
*cli.GenericFlag
// NewGenericFlag creates a new GenericFlag
func NewGenericFlag(fl *cli.GenericFlag) *GenericFlag {
return &GenericFlag{GenericFlag: fl, set: nil}
// the wrapped GenericFlag.Apply
func (f *GenericFlag) Apply(set *flag.FlagSet) error {
return f.GenericFlag.Apply(set)
// Int64Flag is the flag type that wraps cli.Int64Flag to allow
type Int64Flag struct {
*cli.Int64Flag
// NewInt64Flag creates a new Int64Flag
func NewInt64Flag(fl *cli.Int64Flag) *Int64Flag {
return &Int64Flag{Int64Flag: fl, set: nil}
// the wrapped Int64Flag.Apply
func (f *Int64Flag) Apply(set *flag.FlagSet) error {
return f.Int64Flag.Apply(set)
// IntFlag is the flag type that wraps cli.IntFlag to allow
type IntFlag struct {
*cli.IntFlag
// NewIntFlag creates a new IntFlag
func NewIntFlag(fl *cli.IntFlag) *IntFlag {
return &IntFlag{IntFlag: fl, set: nil}
// the wrapped IntFlag.Apply
func (f *IntFlag) Apply(set *flag.FlagSet) error {
return f.IntFlag.Apply(set)
// IntSliceFlag is the flag type that wraps cli.IntSliceFlag to allow
type IntSliceFlag struct {
*cli.IntSliceFlag
// NewIntSliceFlag creates a new IntSliceFlag
func NewIntSliceFlag(fl *cli.IntSliceFlag) *IntSliceFlag {
return &IntSliceFlag{IntSliceFlag: fl, set: nil}
// the wrapped IntSliceFlag.Apply
func (f *IntSliceFlag) Apply(set *flag.FlagSet) error {
return f.IntSliceFlag.Apply(set)
// Int64SliceFlag is the flag type that wraps cli.Int64SliceFlag to allow
type Int64SliceFlag struct {
*cli.Int64SliceFlag
// NewInt64SliceFlag creates a new Int64SliceFlag
func NewInt64SliceFlag(fl *cli.Int64SliceFlag) *Int64SliceFlag {
return &Int64SliceFlag{Int64SliceFlag: fl, set: nil}
// the wrapped Int64SliceFlag.Apply
func (f *Int64SliceFlag) Apply(set *flag.FlagSet) error {
return f.Int64SliceFlag.Apply(set)
// Float64SliceFlag is the flag type that wraps cli.Float64SliceFlag to allow
type Float64SliceFlag struct {
*cli.Float64SliceFlag
// NewFloat64SliceFlag creates a new Float64SliceFlag
func NewFloat64SliceFlag(fl *cli.Float64SliceFlag) *Float64SliceFlag {
return &Float64SliceFlag{Float64SliceFlag: fl, set: nil}
// Apply saves the flagSet for later usage calls, then calls the
// wrapped Float64SliceFlag.Apply
func (f *Float64SliceFlag) Apply(set *flag.FlagSet) error {
return f.Float64SliceFlag.Apply(set)
// StringFlag is the flag type that wraps cli.StringFlag to allow
type StringFlag struct {
*cli.StringFlag
// NewStringFlag creates a new StringFlag
func NewStringFlag(fl *cli.StringFlag) *StringFlag {
return &StringFlag{StringFlag: fl, set: nil}
// the wrapped StringFlag.Apply
func (f *StringFlag) Apply(set *flag.FlagSet) error {
return f.StringFlag.Apply(set)
// PathFlag is the flag type that wraps cli.PathFlag to allow
type PathFlag struct {
*cli.PathFlag
// NewPathFlag creates a new PathFlag
func NewPathFlag(fl *cli.PathFlag) *PathFlag {
return &PathFlag{PathFlag: fl, set: nil}
// wrapped PathFlag.Apply
func (f *PathFlag) Apply(set *flag.FlagSet) error {
return f.PathFlag.Apply(set)
// StringSliceFlag is the flag type that wraps cli.StringSliceFlag to allow
type StringSliceFlag struct {
*cli.StringSliceFlag
// NewStringSliceFlag creates a new StringSliceFlag
func NewStringSliceFlag(fl *cli.StringSliceFlag) *StringSliceFlag {
return &StringSliceFlag{StringSliceFlag: fl, set: nil}
// the wrapped StringSliceFlag.Apply
func (f *StringSliceFlag) Apply(set *flag.FlagSet) error {
return f.StringSliceFlag.Apply(set)
// Uint64Flag is the flag type that wraps cli.Uint64Flag to allow
type Uint64Flag struct {
*cli.Uint64Flag
// NewUint64Flag creates a new Uint64Flag
func NewUint64Flag(fl *cli.Uint64Flag) *Uint64Flag {
return &Uint64Flag{Uint64Flag: fl, set: nil}
// the wrapped Uint64Flag.Apply
func (f *Uint64Flag) Apply(set *flag.FlagSet) error {
return f.Uint64Flag.Apply(set)
// UintFlag is the flag type that wraps cli.UintFlag to allow
type UintFlag struct {
*cli.UintFlag
// NewUintFlag creates a new UintFlag
func NewUintFlag(fl *cli.UintFlag) *UintFlag {
return &UintFlag{UintFlag: fl, set: nil}
// the wrapped UintFlag.Apply
func (f *UintFlag) Apply(set *flag.FlagSet) error {
return f.UintFlag.Apply(set)