
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 33s
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
29 lines
512 B
Go
29 lines
512 B
Go
package application
|
|
|
|
import "github.com/spf13/cobra"
|
|
|
|
type Commander interface {
|
|
Initialize(f func(c *cobra.Command)) *cobra.Command
|
|
}
|
|
|
|
type Command struct {
|
|
Command *cobra.Command
|
|
SubCommands []Commander
|
|
Configure func(c *cobra.Command)
|
|
}
|
|
|
|
func (c Command) Initialize(f func(c *cobra.Command)) *cobra.Command {
|
|
if f != nil {
|
|
f(c.Command)
|
|
}
|
|
|
|
if c.Configure != nil {
|
|
c.Configure(c.Command)
|
|
}
|
|
|
|
for _, sub := range c.SubCommands {
|
|
c.Command.AddCommand(sub.Initialize(f))
|
|
}
|
|
return c.Command
|
|
}
|