config

package
v1.21.2-rc.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 27, 2022 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrCantRegister = errors.New("can't register flag")

Functions

func AutoRegisterFlags

func AutoRegisterFlags(fs *pflag.FlagSet, prefix string, data interface{})

func GenerateConfig

func GenerateConfig(opt interface{})

func LoadConfigFile

func LoadConfigFile(fs *pflag.FlagSet)

func LoadEnv

func LoadEnv(fs *pflag.FlagSet)

func Parse

func Parse(fs *pflag.FlagSet) error

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 Print

func Print(fs *pflag.FlagSet)

func ToYamlNode

func ToYamlNode(node Node) *yaml.Node

Types

type KV

type KV struct {
	Key   string
	Value interface{}
}

func ToJsonPathes

func ToJsonPathes(prefix string, nodes []Node) []KV

type Node

type Node struct {
	Name     string
	Kind     reflect.Kind
	Tag      reflect.StructTag
	Value    reflect.Value
	Children []Node
}

func ParseStruct

func ParseStruct(data interface{}) Node

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL