目录
文章目录
Cobra(眼镜蛇)
Github:https://github.com/spf13/cobra
Cobra 是一个第三方 Golang 包,是一个应用程序生成框架,用于创建自己的应用程序或命令行(Command)程序,从而开发以 Cobra 为基础的应用。目前 Docker、Kubernetes、Hugo 等著名项目都使用了 Cobra。
Cobra 提供的功能:
- 完全兼容 POSIX 命令行模式。
- 支持嵌套子命令(sub-command),如:app server, app fetch。
- 支持全局,局部,串联 Flags。
- 支持应用程序和命令行程序的创建,例如:cobra create appname 和 cobra add cmdname。
- 如果命令输入错误,支持智能提醒。
- 支持自动生成 commands 和 flags 的 help 信息。
- 支持自动识别 -h,–help 选型。
- 支持自动生成 man 手册。
- 支持命令行别名。
- 支持自定义 help 和 usage 信息。
- 可选的紧密集成 viper 配置工具库。
Cobra 的核心概念
- commands:命令行,代表行为。可细分为 rootCmd 和 subCmd。
- arguments:命令行参数。
- flags:命令行选型,代表对行为的改变。通常以 - 或 – 标识。
执行命令行程序时的一般格式为:
APPNAME COMMAND ARG --FLAG
# e.g.
git clone <URL> --bare
Cobra 的使用
安装:
$ go get -u github.com/spf13/cobra/cobra
初始化 Cobra Application:
$ mkdir $GOPATH/src/cobrademo
$ cd $GOPATH/src/cobrademo
$ cobra init --pkg-name cobrademo
$ ll
total 32
-rw-r--r-- 1 mickeyfan staff 11K 8 15 13:33 LICENSE
drwxr-x--x 3 mickeyfan staff 96B 8 15 13:33 cmd
-rw-r--r-- 1 mickeyfan staff 644B 8 15 13:33 main.go
来源:oschina
链接:https://my.oschina.net/u/4303276/blog/4497611