golang命令行库cobra的使用

golang命令行库cobra的使用

一、简介
Cobra是一个golang库,它提供了一个简单的编程界面来创建类似于Git和Go工具的强大的现代CLI接口。
Cobra同时提供了一个工具,帮程序员快速实现CLI框架。
Cobra具有如下强大的功能:

1.简易的子命令行模式,如 app server, app fetch等等
2.完全兼容posix命令行模式
3.嵌套子命令subcommand
4.支持全局,局部,串联flags
5.使用Cobra很容易的生成应用程序和命令,使用cobra create appname和cobra add cmdname
6.如果命令输入错误,将提供智能建议,如 app srver,将提示srver没有,是否是app server
7.自动生成commands和flags的帮助信息
8.自动生成详细的help信息,如app help
9.自动识别-h,--help帮助flag
10.自动生成应用程序在bash下命令自动完成功能
11.自动生成应用程序的man手册
12.命令行别名
13.自定义help和usage信息
14.可选的紧密集成的viper apps




Cobra建立在如下概念基础上
命令(Commands):表明执行什么动作(COMMAND)
参数(Args):    表明执行动作需要的条件参数(ARG)
选项(Flags):   表明执行动作的的可选项(FLAG)




形式如下:
APPNAME COMMAND ARG --FLAG


二、用法


1.Cobra init APPNAME
  用这个可以初始化一个名称为APPNAME的CLI应用,APPNAME将作为应用名称
  生成如下目录结构
    LICENSE
│  main.go

└─cmd
        root.go




2.cobra add 
   一旦生成应用程序框架后,就可以用过Cobra add命令添加命令了
   如下依次添加三条命令,serve , config ,config->create (config的子命令) 
   cobra add serve
   cobra add config
   cobra add config create
   
   以上命令运行后,目录结构如下:
     LICENSE
│  main.go

└─cmd
config.go
create.go
root.go
serve.go
   
整个过程如下:

D:\study\go\src>cd app1




D:\study\go\src\app1>cobra add serve
serve created at D:\study\go\src\app1\cmd\serve.go




D:\study\go\src\app1>cobra add config
config created at D:\study\go\src\app1\cmd\config.go




D:\study\go\src\app1>cobra add create -p configCmd
create created at D:\study\go\src\app1\cmd\create.go




D:\study\go\src\app1>go run main.go serve
serve called




D:\study\go\src\app1>go run main.go config
config called




D:\study\go\src\app1>go run main.go config create
create called
   
3.配置cobra generator
可以在app1目录下新建config.yaml,内容如下:
author: Steve Francia <[email protected]>
license: MIT

内置license支持GPLv2, GPLv3, LGPL, AGPL, MIT, 2-Clause BSD or 3-Clause BSD.
也可以自定义license字段,示例如下:

license:
  header: This file is part of {{ .appName }}.
  text: |
{{ .copyright }}




This is my license. There are many like it, but this one is mine.
My license is my best friend. It is my life. I must master it as I must
master my life.





命令:cobra add  update --config config.yaml 


可以添加命令update command.











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章