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.
golang命令行庫cobra的使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Watch One Piece Film: Red Streaming 2022 HD
recingbaduttt
2022-07-16 16:32:15
4 Tips on Writing I Have Not Seen Anywhere Else
viondal07
2022-07-09 01:32:03
Ways To Help You Beat Writer’s Block
viondal07
2022-07-01 23:39:36
90%的數據外洩都是員工失誤?如何防患於未然?
pissy.yue.88
2022-06-28 13:18:19
Should you design for big tech, agencies, or startups?
viondal07
2022-06-23 23:32:55
The Life That Was Never Postponed
viondal07
2022-06-22 17:04:06
cxvxc vxcvzx czx czxczx czxczxc
wbsbydw
2022-06-20 09:40:34
Calibri — The Font That Avoided Cult Status
viondal07
2022-06-20 00:09:12
Calibri — The Font That Avoided Cult Status
viondal07
2022-06-20 00:08:24
Awogmadagascar_
kylemadison780
2022-06-18 20:37:30
Keto Blast Gummies #1 Product Reduces Belly Fat Exclusively Discounted Price Check Out Here
pihfggsbh
2022-06-18 13:36:56
WQTEY AWTGEHR
lemonkawsar80
2022-06-18 04:41:06
wtyehr
lemonkawsar80
2022-06-18 00:16:15
mammography workstations market Future Size 2027
prathmeshgawade552
2022-06-17 17:31:28
SERTGERTSERSYRT
elysecizek
2022-06-17 07:38:01