spf13/cobra中文README.md

cobra logo

Cobra既是一个用于创建强大的现代CLI应用程序的库,也是一个用于生成应用程序和命令文件的程序。

Cobra被用于许多Go项目中,如KubernetesHugoGithub CLI等等。
等。这个列表包含一个更广泛的使用Cobra的项目列表。

GoDoc | Go Report Card | Slack

概述

Cobra是一个库,提供了一个简单的接口来创建强大的现代CLI
界面,类似于git和go工具。

Cobra也是一个应用程序,它将生成你的应用程序脚手架,以快速
开发一个基于Cobra的应用程序。

Cobra提供了。

  • 简单的基于子命令的CLI:app serverapp fetch,等等。
  • 完全符合POSIX标准的标志(包括短和长的版本)
  • 嵌套的子命令
  • 全局、局部和级联标志
  • 使用 "cobra init "和 "cobra add cmdname "轻松生成应用程序和命令。
  • 智能建议(app srver...你是说app server吗?)
  • 自动生成命令和标志的帮助
  • 自动识别 "h"、"--help "等帮助标志。
  • 为你的应用程序自动生成shell自动完成(bash, zsh, fish, powershell)。
  • 为你的应用程序自动生成man页
  • 命令别名,所以你可以在不破坏它们的情况下改变事情
  • 灵活地定义你自己的帮助、用法等。
  • 可选的与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支持
和Go的flag包一样,支持完全符合POSIX标准的标志。
一个Cobra命令可以定义持续存在于子命令中的标志
和只对该命令有效的标志。

在上面的例子中,'port'是一个标志。

标志功能是由pflag库提供,它是标志标准库的一个分叉
的分叉,它保持了相同的接口,同时增加了 POSIX 的兼容性。

安装

使用Cobra很容易。首先,使用go get安装最新版本的
库的最新版本。这个命令将安装cobra生成器可执行文件
以及库和它的依赖项。

go get -u github.com/spf13/cobra

接下来,在你的应用程序中包含Cobra。

import "github.com/spf13/cobra"

用法

Cobra提供了自己的程序,它将创建你的应用程序并添加任何你想要的
你想要的命令。这是将Cobra纳入你的应用程序的最简单方法。

关于使用Cobra生成器的完整细节,请阅读The Cobra Generator README

关于使用Cobra库的完整细节,请阅读The Cobra User Guide

许可证

Cobra是在Apache 2.0许可下发布的。参见LICENSE.txt

posted @ 2021-12-20 09:47  doNotTellU  阅读(284)  评论(0编辑  收藏  举报