Cobra是一个Golang的开源命令行框架,具有高度结构化、容易扩展和自定义输出格式等特点。它被广泛应用于各种Golang项目中,在处理命令行工具时表现优异。 三、cobra的安装 在使用cobra之前,需要先安装它。在Golang中,可以使用go get命令轻松安装cobra: go get -u github.com/spf13/cobra 四、使用cobra 4.1 基本用法...
Cobra is a CLI libraryforGo that empowers applications. This application is a tool to generate the needed files to quickly create a Cobra application.`, Run: func(cmd*cobra.Command, args []string) {fmt.Println("unbuf called")//TODO: work your own magic hereobj := unbuf.NewPlayer("ch...
# 下载 gopm,之后会在 $GOPATH/bin 目录下生成 gopmgoget-u github.com/gpmgo/gopm# 使用 gopm 来下载 cobragopmget-u-g github.com/spf13/cobra/cobra 下载完成后安装 cobra 工具,在$GOPATH/bin会生成可执行文件: goinstall github.com/spf13/cobra/cobra 将生成的 cobra 工具放到$PATH目录下,可以看到:...
to quickly create a Cobra application. 可以看出,用 cobra init 命令初始化的项目, 生成了一个初始化的应用框架,但是没有任何逻辑功能。仅仅输出一些描述性信息。 这个程序里,最重要的是 cmd/root.go 里的 rootCmd = &cobra.Command{} 这行程序,这里定义命令动作。 程序里的 init() 和 initConfig() 函数...
cobra 是 go 语言的一个库,可以用于编写命令行工具。通常我们可以看到 、、 等等这样命令,都可以很容易用corba来实现,另外,go 语言是很容易编译成一个二进制文件,本文将实现一个简单的命令行工具。 具体写一个例子, 设计一个命令叫 , 有四个子命令 计划有以下几个步
Run: func(cmd *cobra.Command, args []string) { fmt.Println("This is a subcommand") }, } rootCmd.AddCommand(subCmd) if err := rootCmd.Execute(); err != nil { fmt.Println(err) } } 在上面的代码中,我们首先创建了一个根命令rootCmd和一个子命令subCmd。根命令包含了两个全局参数(即nam...
在init() 函数中,StringVarP 方法用于绑定命令行标志与 Go 语言中的变量。这里是 cobra 库的一个功能,它允许你为命令行工具定义和解析标志。下面是 StringVarP 方法参数的详细解释: StartCmd.PersistentFlags().StringVarP(&config,"config","c","config/settings.yml","Start server with provided configuration ...
Golang : cobra 包解析 笔者在《Golang : cobra 包简介》一文中简要的介绍了 cobra 包及其基本的用法,本文我们从代码的角度来了解下 cobra 的核心逻辑。 Command 结构体 Command 结构体是 cobra 抽象出来的核心概念,它的实例表示一个命令或者是一个命令的子命令。下面的代码仅展示 Command 结构体中一些比较重要...
https://github.com/spf13/cobra 1. 一、命令行工具基本概念 1、命令行工具的格式 [appName] [command] [arguments] --[flag] 执行文件 动作 数值 参数 1、appName //执行文件本身,就是main.exe 1、commands //行为,具体操作的动作 比如K8的 get logs操作 ...
Cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序。下面是Cobra使用的一个演示: Cobra提供的功能 简易的子命令行模式,如 app server, app fetch等等 完全兼容posix命令行模式 嵌套子命令subcommand 支持全局,局部,串联flags ...