Cobra 是一个用于创建强大的现代 CLI 应用程序的库。
Cobra 用于许多 Go 项目,例如 Kubernetes、Hugo 和 GitHub CLI 等。此列表包含更广泛的使用 Cobra 的项目列表。
Cobra 是一个库,提供简单的界面来创建类似于 git 和 go 工具的强大的现代 CLI 界面。
眼镜蛇提供:
基于简单子命令的 CLI: app server
、 app fetch
等。
完全符合 POSIX 标准的标志(包括短版本和长版本)
嵌套子命令
全局、局部和级联标志
智能建议( app srver
...您是指app server
吗?)
自动生成命令和标志的帮助
子命令的分组帮助
自动帮助标志识别-h
、 --help
等。
为您的应用程序自动生成 shell 自动完成功能(bash、zsh、fish、powershell)
为您的应用程序自动生成手册页
命令别名,以便您可以在不破坏它们的情况下进行更改
灵活地定义您自己的帮助、用法等。
可选与 viper 无缝集成以实现 12 因素应用程序
Cobra 建立在命令、参数和标志的结构之上。
命令代表动作,参数是事物,标志是这些动作的修饰符。
最好的应用程序在使用时读起来就像句子,因此用户直观地知道如何与它们交互。
要遵循的模式是APPNAME VERB NOUN --ADJECTIVE
或APPNAME COMMAND ARG --FLAG
。
一些现实世界中的好例子可以更好地说明这一点。
在以下示例中,“server”是命令,“port”是标志:
hugo server --port=1313
在此命令中,我们告诉 Git 克隆裸露的 url。
git clone URL --bare
命令是应用程序的中心点。应用程序支持的每个交互都将包含在命令中。一个命令可以有子命令,并且可以选择运行一个操作。
在上面的示例中,“server”是命令。
有关 cobra.Command 的更多信息
标志是修改命令行为的一种方式。 Cobra 支持完全符合 POSIX 的标志以及 Go 标志包。 Cobra 命令可以定义持续到子命令的标志和仅对该命令可用的标志。
在上面的示例中,“port”是标志。
标志功能由 pflag 库提供,它是标志标准库的一个分支,它在添加 POSIX 合规性的同时保持相同的接口。
使用 Cobra 很容易。首先,使用go get
安装最新版本的库。
go get -u github.com/spf13/cobra@latest
接下来,将 Cobra 包含在您的应用程序中:
导入“github.com/spf13/cobra”
cobra-cli
是一个命令行程序,用于生成 cobra 应用程序和命令文件。它将引导您的应用程序脚手架以快速开发基于 Cobra 的应用程序。这是将 Cobra 融入您的应用程序的最简单方法。
可以通过运行以下命令来安装:
go install github.com/spf13/cobra-cli@latest
有关使用 Cobra-CLI 生成器的完整详细信息,请阅读 Cobra 生成器自述文件
有关使用 Cobra 库的完整详细信息,请阅读 Cobra 用户指南。
Cobra 是在 Apache 2.0 许可证下发布的。请参阅 LICENSE.txt