Files
go-kit/application/commander.go
Jan Tytgat 4fab7c8554
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 33s
Move packages to root folder
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
2025-04-22 13:47:12 +02:00

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
}