golang命令行庫cobra的使用
一、簡介
cobra是乙個golang庫,它提供了乙個簡單的程式設計介面來建立類似於git和go工具的強大的現代cli介面。
cobra同時提供了乙個工具,幫程式設計師快速實現cli框架。
cobra具有如下強大的功能:
2.完全相容posix命令列模式
3.巢狀子命令subcommand
4.支援全域性,區域性,串聯flags
7.自動生成commands和flags的幫助資訊
9.自動識別-h,--help幫助flag
10.自動生成應用程式在bash下命令自動完成功能
11.自動生成應用程式的man手冊
12.命令列別名
13.自定義help和usage資訊
cobra建立在如下概念基礎上
命令(commands):表明執行什麼動作(command)
引數(args): 表明執行動作需要的條件引數(arg)
選項(flags): 表明執行動作的的可選項(flag)
形式如下:
二、用法
生成如下目錄結構
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
整個過程如下:
serve called
config called
create called
3.配置cobra generator
author: steve francia
license: mit
內建license支援gplv2, gplv3, lgpl, agpl, mit, 2-clause bsd or 3-clause bsd.
也可以自定義license欄位,示例如下:
license:
text: |
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妙用
大型專案中少不了資料公升級,如果採用web服務,一來不夠安全,二來資料量大的時候也會出超時的情況。這時使用命令列是比較合適的方式了。web專案一般採用mvc模式,對於命令列有嗎?對於命令列則有command 命令 和flag 引數 golang自帶了flag包,不過功能不夠強大,這裡我們使用第三方包...
golang命令列解析
golang從誕生到現在不到十年,使用者量確一路高漲,這個跟golang系統包提供很多開發者經常要用到的功能多少有些關係。乙個更新的語言,在設計的時候會更多的結合眾多開發者常見的需求,將常用的東西放到基礎包,可以避免大量造輪子。golang基礎包中flag包就是用來解決常見的命令列解析問題。下面來介...
python 命令行庫 python之cmd庫學習
一 cmd介紹 引用python的官方文件the cmd class provides a framework for writing line oriented command interpreters.these are often useful for test harnesses,admin...