Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files.

cobra基于command、arguments和flags组织命令行,如:

hugo server --port=1313

hugo是command,server是arguments,port是flags。

目录

一般程序目录结构如下:

main.go是主程序,cmd/root.go为基本命令文件,一般rootCmd表示在没有任何子命令的情况下的基本命令。

command

常用command示例如下:

flags

init()flags

flags分为持久flags(Persistent Flags)和本地flags(local Flags)。

serverCmd.Flags().StringVarP(&server.ServerPort, "port", "p", "50052", "server port")flag&server.ServerPort--port-p50052server port
rootCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "verbose output"),flagflag

Args

Command中的Args用于指定位置参数(positional arguments)。 

NoArgsArbitraryArgsOnlyValidArgsValidArgsCommandMinimumNArgs(int)MaximumNArgs(int)ExactArgs(int)ExactValidArgs(int)ValidArgsCommandRangeArgs(min, max)

 Help

后面两个用于任何子命令。

Usage

参考: