Base application setup
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 36s
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 36s
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
This commit is contained in:
28
pkg/application/commander.go
Normal file
28
pkg/application/commander.go
Normal file
@ -0,0 +1,28 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user