2016-06-29 37 views
9

我創建了一個眼鏡蛇命令,並添加一個標誌:讓眼鏡蛇命令標誌需要

cmd.Flags().StringVarP(&primaryIP, "primary-ip", "p", "", "Help text") 

有沒有辦法讓它比需要檢查自己的價值,並返回一個錯誤等?

+0

我沒有使用眼鏡蛇; [MarkFlagRequired](https://godoc.org/github.com/spf13/cobra#MarkFlagRequired)不是做你想做的事嗎? – JimB

+1

嗨@JimB我剛剛發現了困難的方式,那MarkFlagRequired只是一個提示,並沒有強制執行一個標誌... https://github.com/spf13/cobra/issues/206 – KingCrunch

回答

3

不,您必須檢查自己的輸入是否適合您的程序。

請注意,這是有道理的,因爲您可能想要檢查輸入是否同時正確。在你的例子中,你應該檢查輸入是否存在,以及輸入是否是有效的IP地址。

5

幾個月前,在cobra中更改了此行爲,雖然文檔不太清楚。現在,如果你標記一個標誌作爲MarkFlagRequired("primary-ip")和你不提供這樣的標誌,運行命令將打印在其中,缺少必需的標誌陳述結束時,幫助加

required flag(s) "primary-ip" 
exit status 1 

+0

應該改爲新的接受答案 –

+0

接受的答案仍然很好。 –

+0

今天完全不準確,因此是錯誤的。堆棧沒有反映歷史,但今天什麼是正確的。回答是調整加班 –