51 lines
1.1 KiB
Go
Raw Normal View History

2024-12-18 23:38:28 +08:00
package myCobra
import (
"github.com/spf13/cobra"
)
type SimpleCmd struct {
Use string
Short string
Example string
PreRun func()
RunE func() error
cobraModel *cobra.Command
}
func (t *SimpleCmd) GetCobra() *cobra.Command {
if t.cobraModel == nil {
t.cobraModel = &cobra.Command{
Use: t.Use,
Short: t.Short,
Example: t.Example,
SilenceUsage: true,
PreRun: func(cmd *cobra.Command, args []string) {
t.PreRun()
},
RunE: func(cmd *cobra.Command, args []string) error {
return t.RunE()
},
}
}
return t.cobraModel
}
func (t *SimpleCmd) SetArgsFunc(argsFunc func(args []string) error) {
t.GetCobra().Args = func(cmd *cobra.Command, args []string) error {
return argsFunc(args)
}
}
func (t *SimpleCmd) SetStringVar(p *string, name, shorthand string, value string, usage string) {
t.GetCobra().PersistentFlags().StringVarP(p, name, shorthand, value, usage)
}
func (t *SimpleCmd) AddCommand(cmd *SimpleCmd) {
t.GetCobra().AddCommand(cmd.GetCobra())
}
func (t *SimpleCmd) Execute() error {
return t.GetCobra().Execute()
}