Repo: https://github.com/spf13/cobra

概述

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 传入定义的命令对象。