添加Flags
1. Persistent Flags
Persistent Flags
表示该类参数可以被用于当前命令及其子命令。
例如,以下表示verbose
参数可以被用于rootCmd
及其子命令。
1 | rootCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "verbose output") |
2. Local Flags
Local Flags
表示该类参数只能用于当前命令。
例如,以下表示source
只能用于localCmd
这个命令,不能用于其子命令。
1 | localCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from") |
3. Local Flag on Parent Commands
cobra默认只解析当前命令的local flags,通过开启Command.TraverseChildren
参数,可以解析每个命令的local flags。
1 | command := cobra.Command{ |
4. Bind Flags with Config
可以通过 viper来绑定flags。
1 | var author string |
更多参考: viper documentation。
5. Required flags
默认添加的flags的可选
参数,如果需要在二进制运行时添加必要
参数,即当该参数没指定时会报错。可使用以下设置。
1 | rootCmd.Flags().StringVarP(&Region, "region", "r", "", "AWS region (required)") |
参考:
赞赏一下