package main
import (
"fmt"
"github.com/spf13/cobra"
"log"
)
var (
ns string
//创建rootCmd主命令,并定义run执行函数(注意,此处是定义run函数而并非直接执行该函数,也可以通过rootcmd.ADDCommand方法添加子命令)
//为命令添加命令行参数flag
//执行rootCmd命令调用的函数,rootCmd.Execute会在内部回调run执行函数
rootCmd = &cobra.Command{
Use: "kubectl",
Short: "",
Long: "",
}
createCmd = &cobra.Command{
Use: "create",
Short: "资源对象",
}
getCmd = &cobra.Command{
Use: "get",
Short: "资源对象",
}
podtcmd = &cobra.Command{
Use: "pod",
Short: "pod",
Run: func(cmd *cobra.Command, args []string) {
if len(args) == 0 {
fmt.Println("all")
}else {
fmt.Println(args,"pod is ")
}
},
}
deploycmd = &cobra.Command{
Use: "deploy",
Short: "deployment",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println(args,"deploy is")
},
}
)
func init() {
rootCmd.PersistentFlags().StringVarP(&ns,"namespace","","default","namespace is ")
//给get 跟create添加资源对象pod 跟deploy
getCmd.AddCommand(podtcmd,deploycmd)
createCmd.AddCommand(podtcmd,deploycmd)
//为root主命令添加create 跟get
rootCmd.AddCommand(getCmd,createCmd)
}
func main() {
err := rootCmd.Execute()
if err != nil {
log.Fatalf("cmd.Execute err: %v", err)
}
}