https://github.com/spf13/cobra 1. 一、命令行工具基本概念 1、命令行工具的格式 [appName] [command] [arguments] --[flag] 执行文件 动作 数值 参数 1、appName //执行文件本身,就是main.exe 1、commands //行为,具体操作的动作 比如K8的 get logs操作 2、arguments //表示数值 3、flags //表示对...
// 绑定 cobrautils.BindFlags(rootCmd, &stu) _ = rootCmd.Execute() // 打印结果 fmt.Printf("%+v", stu) 完整Demo 代码语言:javascript 代码运行次数:0 复制Cloud Studio 代码运行 package main import ( "fmt" "github.com/go-jarvis/cobrautils" "github.com/spf13/cobra" ) type student struct...
to quickly create a Cobra application.`,})// Execute executes the root command.funcExecute()error{returnrootCmd.Execute()}funcinit(){cobra.OnInitialize(initConfig)rootCmd.PersistentFlags().StringVar(&cfgFile,"config","","config file (default is $HOME/.cobra.yaml)")rootCmd.PersistentFlags()....
四、cobra--应用命令框架 Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files. github:https://github.com/spf13/cobra.git cobra基于command、arguments和flags组织命令行,如: hugo server --port=1313 hugo是command,server...
cobrahttps://github.com/spf13/cobra是 golang 中一个非常好用的命令开发库。 但是绑定flag参数的时候略微有点繁琐, 不但有多少个参数就需要写多少行绑定代码, 而且参数定义和描述也是分开的, 非常的不直观。 123456 funcinit() {rootCmd.Flags().StringVarP(&stu.Name,"name","","zhangsanfeng","student...
Cobra 是一个用来创建命令行的 golang 库,同时也是一个用于生成应用和命令行文件的程序。 1.1 概念 Cobra 结构由三部分组成:命令 (commands)、参数 (arguments)、标志 (flags)。基本模型如下: APPNAME VERB NOUN –ADJECTIVE 或者 APPNAME COMMAND ARG –FLAG ...
Cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序。下面是Cobra使用的一个演示: Cobra提供的功能 简易的子命令行模式,如 app server, app fetch等等 完全兼容posix命令行模式 嵌套子命令subcommand 支持全局,局部,串联flags ...
1. Cobra 介绍 Cobra 是一个用来创建命令行的 golang 库,同时也是一个用于生成应用和命令行文件的程序。 1.1 概念 Cobra 结构由三部分组成:命令 (commands)、参数 (arguments)、标志 (flags)。基本模型如下: APPNAME VERB NOUN --ADJECTIVE或者APPNAME COMMAND ARG --FLAG ...
Cobra是一个库,其提供简单的接口来创建强大现代的CLI接口,类似于git或者go工具。同时,它也是一个应用,用来生成个人应用框架,从而开发以Cobra为基础的应用。Docker源码中使用了Cobra。 概念 Cobra基于三个基本概念commands,arguments和flags。其中commands代表行为,arguments代表数值,flags代表对行为的改变。 基本模型如下: ...
cobra默认只解析当前命令的local flags,通过开启Command.TraverseChildren参数,可以解析每个命令的local flags。 command:=cobra.Command{Use:"print [OPTIONS] [COMMANDS]", TraverseChildren: true,} 4. Bind Flags with Config 可以通过viper来绑定flags。