Documentation ¶
Index ¶
- Variables
- func AutoRegisterFlags(fs *pflag.FlagSet, prefix string, data interface{})
- func GenerateConfig(opt interface{})
- func LoadConfigFile(fs *pflag.FlagSet)
- func LoadEnv(fs *pflag.FlagSet)
- func Parse(fs *pflag.FlagSet) error
- func Print(fs *pflag.FlagSet)
- func ToYamlNode(node Node) *yaml.Node
- type KV
- type Node
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrCantRegister = errors.New("can't register flag")
Functions ¶
func AutoRegisterFlags ¶
func GenerateConfig ¶
func GenerateConfig(opt interface{})
func LoadConfigFile ¶
func Parse ¶
Parse 从多个方式加载配置
- 配置文件加载有如下优先级: 1. 命令行参数 2. 环境变量 3. 配置文件 4. 默认值
- 高优先级的配置若存在,会覆盖低优先级已存在的配置 - 若所有配置均不存在,则使用默认值
对于需要做配置的项目,需要先设置 flag,环境和配置文件会使用已经设置flag进行配置
举例: 若需要增加配置项目,需要配置使用的结构并设置默认值,例:Foo{Bar:"默认值"}, 然后使用 pflag 配置命令行参数:
fs.StringVarP(&options.Foo.Bar, "foo-bar", "", options.Foo.Bar, "foo bar")
配置完成后,Parse 会根据 plagset 中已有配置 "foo-bar",获取对应的环境变量 "FOO_BAR",以及对应的配置文件项 "foo.bar"
func ToYamlNode ¶
func ToYamlNode(node Node) *yaml.Node
Types ¶
Click to show internal directories.
Click to hide internal directories.