概述
Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files. — Cobra README.md
来自 Repo 的概述已经很清晰的概括了 Cobra,它有库和程序两个部分,库自然是用于提供命令相关的API,而 Cobra 程序则可以生成创建命令相关的文件。
用法
基础方法在Repo Readme中都有介绍,这里只简单介绍。
文件结构
cmd/ root.go main.go
以上就是最基本的文件结构,main.go 中进行root.go的根命令调用,root.go 为根命令,运行 CLI 程序时直接运行,在其中可以通过 rootCmd.PersistentFlags()
(假设在main.go 中执行的为 rootCmd.Execute
,后文同)中的方法定义全局参数。
命令创建
通过 Cobra Generator 或者手动创建并引入的方式添加到路径下 cmd
包内,通常为单文件单命令,定义包内部变量,然后在包初始化方法 init
中使用 rootCmd.AddCommand
传入定义的命令对象。