Files
tea/vendor/github.com/urfave/cli/category.go
6543 0a5cdd60ac [Vendor] Update urfave/cli v1.20.0 -> v1.22.2 (#84)
Merge branch 'master' into update-cli-lib2

[Vendor] Update stretchr/testify  v1.3.0 -> v1.4.0 (#83)

update github.com/stretchr/testify  v1.3.0 -> v1.4.0

Co-authored-by: 6543 <6543@obermui.de>
Reviewed-by: techknowlogick <techknowlogick@gitea.io>
Reviewed-by: sapk <sapk@noreply.gitea.io>
Reviewed-by: appleboy <appleboy.tw@gmail.com>

Update urfave/cli v1.20.0 -> v1.22.2

Co-authored-by: 6543 <6543@obermui.de>
Reviewed-by: mrsdizzie <info@mrsdizzie.com>
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
2020-01-04 04:45:36 +00:00

45 lines
1.1 KiB
Go

package cli
// CommandCategories is a slice of *CommandCategory.
type CommandCategories []*CommandCategory
// CommandCategory is a category containing commands.
type CommandCategory struct {
Name string
Commands Commands
}
func (c CommandCategories) Less(i, j int) bool {
return lexicographicLess(c[i].Name, c[j].Name)
}
func (c CommandCategories) Len() int {
return len(c)
}
func (c CommandCategories) Swap(i, j int) {
c[i], c[j] = c[j], c[i]
}
// AddCommand adds a command to a category.
func (c CommandCategories) AddCommand(category string, command Command) CommandCategories {
for _, commandCategory := range c {
if commandCategory.Name == category {
commandCategory.Commands = append(commandCategory.Commands, command)
return c
}
}
return append(c, &CommandCategory{Name: category, Commands: []Command{command}})
}
// VisibleCommands returns a slice of the Commands with Hidden=false
func (c *CommandCategory) VisibleCommands() []Command {
ret := []Command{}
for _, command := range c.Commands {
if !command.Hidden {
ret = append(ret, command)
}
}
return ret
}