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.











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