问题描述
我有一个 Go Cobra CLI 应用程序,当 root 命令在没有任何子命令的情况下运行时,我想根据用户输入在无限循环中运行子命令。
myapp
有 3 个子命令; list
、delete
和 create
。通常,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 (将#修改为@)