Cobra安裝和簡單應用
cobra安裝
關鍵點在於先將golang的sys和text複製到本地來,再使用指令進行安裝 指令步驟為:
使用命令 go get -v github.com/spf13/cobra/cobra
下載過程中,會出提示如下錯誤
這是熟悉的錯誤,請先cd到$GOPATH/src/golang.org/x
目錄下用 git clone 下載 sys 和 text 專案
具體指令為:
git clone https://github.com/golang/text
git clone https://github.com/golang/sys
然後使用 go install github.com/spf13/cobra/cobra
, 安裝後在 $GOBIN 下出現了 cobra 可執行程式。
cobra使用
使用cobra建立一個新的demo:
由於cobra只能夠在gopath的目錄下使用,因此我們需要先cd到gopath的src資料夾中
在src目錄下,我們可以使用cobra init demo
這一條指令來新建一個demo
然後我們使用ls
指令就可以看到目錄下生成了一個demo專案,進入到裡面試著執行一下,應該是可以成功執行的
具體步驟如下圖:
按照潘老師部落格中的操作進行簡單的cobra使用
其中有一個地方感覺需要注意一下:cobra init 要應用在一個新建的空資料夾中,會自動在資料夾下建立一個生成好的框架
也就是說:
- mkdir temp - cd temp - cobra init
或者
- cobra init temp
這兩段命令的效果是一樣的
然後我們cd進新生成的檔案目錄下,使用指令cobra add register
,就會新新增一個名為register的操作,此時操作沒有任何效果,使用go run xxx.go register
只會提示你呼叫了這個操作
具體呼叫過程我們可以閱讀【main.go】和【root.go】、【register.go】三個檔案得知 然後我們可以通過修改【register.go】來新增相應的操作 具體操作為:
register.go,中的init() 新增:
registerCmd.Flags().StringP("user", "u", "Anonymous", "Help message for username")
Run 匿名回撥函式中新增:
username, _ := cmd.Flags().GetString("user")
fmt.Println("register called by " + username)
修改後的【register.go】檔案如下:
修改後wq退出,然後就可以進行測試:
命令為:go run main.go register --user=Apple
可看到修改命令生效了