1package maddycli23import (4 "flag"56 "github.com/urfave/cli/v2"7)89// extFlag implements cli.Flag via standard flag.Flag.10type extFlag struct {11 f *flag.Flag12}1314func (e *extFlag) Apply(fs *flag.FlagSet) error {15 fs.Var(e.f.Value, e.f.Name, e.f.Usage)16 return nil17}1819func (e *extFlag) Names() []string {20 return []string{e.f.Name}21}2223func (e *extFlag) IsSet() bool {24 return false25}2627func (e *extFlag) String() string {28 return cli.FlagStringer(e)29}3031func (e *extFlag) IsVisible() bool {32 return true33}3435func (e *extFlag) TakesValue() bool {36 return false37}3839func (e *extFlag) GetUsage() string {40 return e.f.Usage41}4243func (e *extFlag) GetValue() string {44 return e.f.Value.String()45}4647func (e *extFlag) GetDefaultText() string {48 return e.f.DefValue49}5051func (e *extFlag) GetEnvVars() []string {52 return nil53}5455func mapStdlibFlags(app *cli.App) {56 // Modified AllowExtFlags from cli lib with -test.* exception removed.57 flag.VisitAll(func(f *flag.Flag) {58 app.Flags = append(app.Flags, &extFlag{f})59 })60}