Add in Category to Flag interface
This commit is contained in:
parent
7c383b0d16
commit
9dd96e9e90
14
app.go
14
app.go
@ -51,6 +51,8 @@ type App struct {
|
|||||||
HideVersion bool
|
HideVersion bool
|
||||||
// Populate on app startup, only gettable through method Categories()
|
// Populate on app startup, only gettable through method Categories()
|
||||||
categories CommandCategories
|
categories CommandCategories
|
||||||
|
// Populate on app startup, only gettable through method Categories()
|
||||||
|
flagCategories FlagCategories
|
||||||
// An action to execute when the bash-completion flag is set
|
// An action to execute when the bash-completion flag is set
|
||||||
BashComplete BashCompleteFunc
|
BashComplete BashCompleteFunc
|
||||||
// An action to execute before any subcommands are run, but after the context is ready
|
// An action to execute before any subcommands are run, but after the context is ready
|
||||||
@ -164,7 +166,7 @@ func (a *App) Setup() {
|
|||||||
}
|
}
|
||||||
sort.Sort(a.categories)
|
sort.Sort(a.categories)
|
||||||
|
|
||||||
if a.Metadata == nil {
|
if a.Metadata == nil {
|
||||||
a.Metadata = make(map[string]interface{})
|
a.Metadata = make(map[string]interface{})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,6 +194,11 @@ func (a *App) Run(arguments []string) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.flagCategories = FlagCategories{}
|
||||||
|
for _, flag := range a.Flags {
|
||||||
|
a.flagCategories = a.flagCategories.AddFlag(flag.GetCategory(), flag)
|
||||||
|
}
|
||||||
|
|
||||||
set.SetOutput(ioutil.Discard)
|
set.SetOutput(ioutil.Discard)
|
||||||
err = set.Parse(arguments[1:])
|
err = set.Parse(arguments[1:])
|
||||||
nerr := normalizeFlags(a.Flags, set)
|
nerr := normalizeFlags(a.Flags, set)
|
||||||
@ -437,6 +444,11 @@ func (a *App) VisibleCommands() []Command {
|
|||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Categories returns a slice containing all the categories with the commands they contain
|
||||||
|
func (a *App) FlagCategories() FlagCategories {
|
||||||
|
return a.flagCategories
|
||||||
|
}
|
||||||
|
|
||||||
// VisibleFlags returns a slice of the Flags with Hidden=false
|
// VisibleFlags returns a slice of the Flags with Hidden=false
|
||||||
func (a *App) VisibleFlags() []Flag {
|
func (a *App) VisibleFlags() []Flag {
|
||||||
return visibleFlags(a.Flags)
|
return visibleFlags(a.Flags)
|
||||||
|
@ -1607,6 +1607,10 @@ func (c *customBoolFlag) GetHidden() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *customBoolFlag) GetCategory() string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (c *customBoolFlag) Apply(set *flag.FlagSet) {
|
func (c *customBoolFlag) Apply(set *flag.FlagSet) {
|
||||||
set.String(c.Nombre, c.Nombre, "")
|
set.String(c.Nombre, c.Nombre, "")
|
||||||
}
|
}
|
||||||
|
1
flag.go
1
flag.go
@ -73,6 +73,7 @@ type Flag interface {
|
|||||||
// Apply Flag settings to the given flag set
|
// Apply Flag settings to the given flag set
|
||||||
Apply(*flag.FlagSet)
|
Apply(*flag.FlagSet)
|
||||||
GetName() string
|
GetName() string
|
||||||
|
GetCategory() string
|
||||||
GetHidden() bool
|
GetHidden() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,11 @@ func (f BoolFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f BoolFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Bool looks up the value of a local BoolFlag, returns
|
// Bool looks up the value of a local BoolFlag, returns
|
||||||
// false if not found
|
// false if not found
|
||||||
func (c *Context) Bool(name string) bool {
|
func (c *Context) Bool(name string) bool {
|
||||||
@ -89,6 +94,11 @@ func (f BoolTFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f BoolTFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// BoolT looks up the value of a local BoolTFlag, returns
|
// BoolT looks up the value of a local BoolTFlag, returns
|
||||||
// false if not found
|
// false if not found
|
||||||
func (c *Context) BoolT(name string) bool {
|
func (c *Context) BoolT(name string) bool {
|
||||||
@ -144,6 +154,11 @@ func (f DurationFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f DurationFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Duration looks up the value of a local DurationFlag, returns
|
// Duration looks up the value of a local DurationFlag, returns
|
||||||
// 0 if not found
|
// 0 if not found
|
||||||
func (c *Context) Duration(name string) time.Duration {
|
func (c *Context) Duration(name string) time.Duration {
|
||||||
@ -199,6 +214,11 @@ func (f Float64Flag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f Float64Flag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Float64 looks up the value of a local Float64Flag, returns
|
// Float64 looks up the value of a local Float64Flag, returns
|
||||||
// 0 if not found
|
// 0 if not found
|
||||||
func (c *Context) Float64(name string) float64 {
|
func (c *Context) Float64(name string) float64 {
|
||||||
@ -253,6 +273,11 @@ func (f GenericFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f GenericFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Generic looks up the value of a local GenericFlag, returns
|
// Generic looks up the value of a local GenericFlag, returns
|
||||||
// nil if not found
|
// nil if not found
|
||||||
func (c *Context) Generic(name string) interface{} {
|
func (c *Context) Generic(name string) interface{} {
|
||||||
@ -308,6 +333,11 @@ func (f Int64Flag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f Int64Flag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Int64 looks up the value of a local Int64Flag, returns
|
// Int64 looks up the value of a local Int64Flag, returns
|
||||||
// 0 if not found
|
// 0 if not found
|
||||||
func (c *Context) Int64(name string) int64 {
|
func (c *Context) Int64(name string) int64 {
|
||||||
@ -363,6 +393,11 @@ func (f IntFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f IntFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Int looks up the value of a local IntFlag, returns
|
// Int looks up the value of a local IntFlag, returns
|
||||||
// 0 if not found
|
// 0 if not found
|
||||||
func (c *Context) Int(name string) int {
|
func (c *Context) Int(name string) int {
|
||||||
@ -417,6 +452,11 @@ func (f IntSliceFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f IntSliceFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// IntSlice looks up the value of a local IntSliceFlag, returns
|
// IntSlice looks up the value of a local IntSliceFlag, returns
|
||||||
// nil if not found
|
// nil if not found
|
||||||
func (c *Context) IntSlice(name string) []int {
|
func (c *Context) IntSlice(name string) []int {
|
||||||
@ -471,6 +511,11 @@ func (f Int64SliceFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f Int64SliceFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Int64Slice looks up the value of a local Int64SliceFlag, returns
|
// Int64Slice looks up the value of a local Int64SliceFlag, returns
|
||||||
// nil if not found
|
// nil if not found
|
||||||
func (c *Context) Int64Slice(name string) []int64 {
|
func (c *Context) Int64Slice(name string) []int64 {
|
||||||
@ -526,6 +571,11 @@ func (f StringFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f StringFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// String looks up the value of a local StringFlag, returns
|
// String looks up the value of a local StringFlag, returns
|
||||||
// "" if not found
|
// "" if not found
|
||||||
func (c *Context) String(name string) string {
|
func (c *Context) String(name string) string {
|
||||||
@ -580,6 +630,11 @@ func (f StringSliceFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f StringSliceFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// StringSlice looks up the value of a local StringSliceFlag, returns
|
// StringSlice looks up the value of a local StringSliceFlag, returns
|
||||||
// nil if not found
|
// nil if not found
|
||||||
func (c *Context) StringSlice(name string) []string {
|
func (c *Context) StringSlice(name string) []string {
|
||||||
@ -635,6 +690,11 @@ func (f Uint64Flag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f Uint64Flag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Uint64 looks up the value of a local Uint64Flag, returns
|
// Uint64 looks up the value of a local Uint64Flag, returns
|
||||||
// 0 if not found
|
// 0 if not found
|
||||||
func (c *Context) Uint64(name string) uint64 {
|
func (c *Context) Uint64(name string) uint64 {
|
||||||
@ -690,6 +750,11 @@ func (f UintFlag) GetHidden() bool {
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f UintFlag) GetCategory() string {
|
||||||
|
return f.Category
|
||||||
|
}
|
||||||
|
|
||||||
// Uint looks up the value of a local UintFlag, returns
|
// Uint looks up the value of a local UintFlag, returns
|
||||||
// 0 if not found
|
// 0 if not found
|
||||||
func (c *Context) Uint(name string) uint {
|
func (c *Context) Uint(name string) uint {
|
||||||
|
@ -176,6 +176,11 @@ def _write_cli_flag_types(outfile, types):
|
|||||||
return f.Hidden
|
return f.Hidden
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
// GetCategory lets us access the flag category
|
||||||
|
func (f {name}Flag) GetCategory() string {{
|
||||||
|
return f.Category
|
||||||
|
}}
|
||||||
|
|
||||||
// {name} looks up the value of a local {name}Flag, returns
|
// {name} looks up the value of a local {name}Flag, returns
|
||||||
// {context_default} if not found
|
// {context_default} if not found
|
||||||
func (c *Context) {name}(name string) {context_type} {{
|
func (c *Context) {name}(name string) {context_type} {{
|
||||||
|
Loading…
Reference in New Issue
Block a user