如何从 Cobra 根命令中运行子命令

问题描述

我有一个 Go Cobra CLI 应用程序,当 root 命令在没有任何子命令的情况下运行时,我想根据用户输入在无限循环中运行子命令。

myapp 有 3 个子命令; listdeletecreate。通常,Cobra 应用程序通过运行 myapp list [args] 等来工作,但我希望能够运行 myapp 并呈现一个界面,该界面接受列表、删除和创建,而无需 myapp 前缀。

所以代替:

$ myapp list /files
f1 f2 f3
$ myapp create /newfile
$ myapp delete /newfile

应该是:

$ myapp
> list /files
f1 f2 f3
> create /newfile
> delete /newfile

我可以在执行 root 命令时运行一个循环并接受字符串输入并运行相应的命令,但是还有更多的命令,这是很多额外的工作,复制了眼镜蛇中已经存在的功能

这是眼镜蛇rootCmd

// rootCmd represents the base command when called without any subcommands
var rootCmd = &cobra.Command{
    Use:   "server",Short: "A brief description of your application",Long:  ``,Run: func(cmd *cobra.Command,args []string) {
        // loop here and run commands based on user input
    },}

func Execute() {
    cobra.CheckErr(rootCmd.Execute())
}

有什么好的办法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)