我想在我正在go使用的 cli 工具中选择以下 cmd 调用cobra:
$ mytool envs apps compare
$ mytool envs vars compare
因此,我正在创建命令并执行绑定,如下所示:
rootCmd.AddCommand(envsCmd)
envsCmd.AddCommand(appsCmd)
envsCmd.AddCommand(varsCmd)
varsCmd.AddCommand(compareCmd)
appsCmd.AddCommand(compareCmd)
但是,在检查子命令的父级时compare,结果总是apps
var compareCmd = &cobra.Command{
Hidden: false,
Use: "compare",
Short: "",
Long: ``,
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Println(cmd.Parent().Use)
apps无论我是否调用,上述内容总是会打印
$ mytool envs apps compare
或者
$ mytool envs vars compare
我是否应该假设至少使用我想要实现的目标是不可能的cobra?
缥缈止盈
相关分类