conf

package
v0.6.3 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2022 License: Apache-2.0 Imports: 20 Imported by: 37

README

conf

加载配置

从字符串中加载配置
var content = `[app] mode="dev"`
if err := conf.Load(bytes.NewBufferString(content), toml.Unmarshal); err != nil {
    panic(err)
}
从配置文件中加载配置
import (
    file_datasource "github.com/douyu/jupiter/pkg/datasource/file"
)

provider := file_datasource.NewDataSource(path)
if err := conf.Load(provider, toml.Unmarshal); err != nil {
    panic(err)
}
从etcd中加载配置
import (
   etcdv3_datasource "github.com/douyu/jupiter/pkg/datasource/etcdv3"
   "github.com/douyu/jupiter/client/etcdv3"
)
provider := etcdv3_datasource.NewDataSource(
    etcdv3.StdConfig("config_datasource").Build(),
    "/config/my-application",
)
if err := conf.Load(provider, json.Unmarshal); err != nil {
    panic(err)
}

Documentation

Index

Constants

View Source
const DefaultEnvPrefix = "APP_"

Variables

View Source
var (
	//ErrConfigAddr not config
	ErrConfigAddr = errors.New("no config... ")
	// ErrInvalidDataSource defines an error that the scheme has been registered
	ErrInvalidDataSource = errors.New("invalid data source, please make sure the scheme has been registered")
)
View Source
var ErrInvalidKey = errors.New("invalid key, maybe not exist in config")

ErrInvalidKey ...

Functions

func Apply

func Apply(conf map[string]interface{}) error

Apply ...

func Debug

func Debug(sep string)

Debug ...

func Exists added in v0.3.1

func Exists(key string) bool

Exists returns whether key exists

func Get

func Get(key string) interface{}

Get returns an interface. For a specific value use one of the Get____ methods.

func GetBool

func GetBool(key string) bool

GetBool returns the value associated with the key as a boolean with default defaultConfiguration.

func GetDuration

func GetDuration(key string) time.Duration

GetDuration returns the value associated with the key as a duration with default defaultConfiguration.

func GetFloat64

func GetFloat64(key string) float64

GetFloat64 returns the value associated with the key as a float64 with default defaultConfiguration.

func GetInt

func GetInt(key string) int

GetInt returns the value associated with the key as an integer with default defaultConfiguration.

func GetInt64

func GetInt64(key string) int64

GetInt64 returns the value associated with the key as an integer with default defaultConfiguration.

func GetInt64Slice added in v0.3.5

func GetInt64Slice(key string) []int64

GetInt64Slice returns the value associated with the key as an integer slice with default defaultConfiguration.

func GetSlice

func GetSlice(key string) []interface{}

GetSlice returns the value associated with the key as a slice of strings with default defaultConfiguration.

func GetString

func GetString(key string) string

GetString returns the value associated with the key as a string with default defaultConfiguration.

func GetStringMap

func GetStringMap(key string) map[string]interface{}

GetStringMap returns the value associated with the key as a map of interfaces with default defaultConfiguration.

func GetStringMapString

func GetStringMapString(key string) map[string]string

GetStringMapString returns the value associated with the key as a map of strings with default defaultConfiguration.

func GetStringMapStringSlice

func GetStringMapStringSlice(key string) map[string][]string

GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings with default defaultConfiguration.

func GetStringSlice

func GetStringSlice(key string) []string

GetStringSlice returns the value associated with the key as a slice of strings with default defaultConfiguration.

func GetTime

func GetTime(key string) time.Time

GetTime returns the value associated with the key as time with default defaultConfiguration.

func LoadFromDataSource

func LoadFromDataSource(ds DataSource, unmarshaller Unmarshaller) error

LoadFromDataSource load configuration from data source if data source supports dynamic config, a monitor goroutinue would be

func LoadFromReader

func LoadFromReader(r io.Reader, unmarshaller Unmarshaller) error

Load loads configuration from provided provider with default defaultConfiguration.

func OnChange

func OnChange(fn func(*Configuration))

OnChange 注册change回调函数

func OnLoaded added in v0.3.1

func OnLoaded(fn func(*Configuration))

func Register added in v0.3.1

func Register(scheme string, creator DataSourceCreatorFunc)

Register registers a dataSource creator function to the registry

func Reset

func Reset()

Reset resets all to default settings.

func Set

func Set(key string, val interface{})

Set set config value for key

func Traverse

func Traverse(sep string) map[string]interface{}

Traverse ...

func UnmarshalKey

func UnmarshalKey(key string, rawVal interface{}, opts ...GetOption) error

UnmarshalKey takes a single key and unmarshal it into a Struct with default defaultConfiguration.

func UnmarshalWithExpect

func UnmarshalWithExpect(key string, expect interface{}) interface{}

UnmarshalWithExpect unmarshal key, returns expect if failed

Types

type Configuration

type Configuration struct {
	// contains filtered or unexported fields
}

Configuration provides configuration for application.

func New

func New() *Configuration

New constructs a new Configuration with provider.

func (*Configuration) Get

func (c *Configuration) Get(key string) interface{}

Get returns the value associated with the key

func (*Configuration) GetBool

func (c *Configuration) GetBool(key string) bool

GetBool returns the value associated with the key as a boolean.

func (*Configuration) GetDuration

func (c *Configuration) GetDuration(key string) time.Duration

GetDuration returns the value associated with the key as a duration.

func (*Configuration) GetFloat64

func (c *Configuration) GetFloat64(key string) float64

GetFloat64 returns the value associated with the key as a float64.

func (*Configuration) GetInt

func (c *Configuration) GetInt(key string) int

GetInt returns the value associated with the key as an integer.

func (*Configuration) GetInt64

func (c *Configuration) GetInt64(key string) int64

GetInt64 returns the value associated with the key as an integer.

func (*Configuration) GetInt64Slice added in v0.3.5

func (c *Configuration) GetInt64Slice(key string) []int64

GetInt64Slice returns the value associated with the key as an integer slice.

func (*Configuration) GetSlice

func (c *Configuration) GetSlice(key string) []interface{}

GetSlice returns the value associated with the key as a slice of strings.

func (*Configuration) GetString

func (c *Configuration) GetString(key string) string

GetString returns the value associated with the key as a string.

func (*Configuration) GetStringMap

func (c *Configuration) GetStringMap(key string) map[string]interface{}

GetStringMap returns the value associated with the key as a map of interfaces.

func (*Configuration) GetStringMapString

func (c *Configuration) GetStringMapString(key string) map[string]string

GetStringMapString returns the value associated with the key as a map of strings.

func (*Configuration) GetStringMapStringSlice

func (c *Configuration) GetStringMapStringSlice(key string) map[string][]string

GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings.

func (*Configuration) GetStringSlice

func (c *Configuration) GetStringSlice(key string) []string

GetStringSlice returns the value associated with the key as a slice of strings.

func (*Configuration) GetTime

func (c *Configuration) GetTime(key string) time.Time

GetTime returns the value associated with the key as time.

func (*Configuration) Load

func (c *Configuration) Load(content []byte, unmarshal Unmarshaller) error

Load ...

func (*Configuration) LoadEnvironments added in v0.3.2

func (c *Configuration) LoadEnvironments(prefix string)

LoadEnvironments reads os environments with prefix such as APP_ PREFIX_FIELD1_FIELD2 will be translated into prefix.field1.field2

func (*Configuration) LoadFromDataSource

func (c *Configuration) LoadFromDataSource(ds DataSource, unmarshaller Unmarshaller) error

LoadFromDataSource ...

func (*Configuration) LoadFromReader

func (c *Configuration) LoadFromReader(reader io.Reader, unmarshaller Unmarshaller) error

Load loads configuration from provided data source.

func (*Configuration) OnChange

func (c *Configuration) OnChange(fn func(*Configuration))

OnChange 注册change回调函数

func (*Configuration) OnLoaded added in v0.3.1

func (c *Configuration) OnLoaded(fn func(*Configuration))

func (*Configuration) Set

func (c *Configuration) Set(key string, val interface{}) error

Set ...

func (*Configuration) SetKeyDelim

func (c *Configuration) SetKeyDelim(delim string)

SetKeyDelim set keyDelim of a defaultConfiguration instance.

func (*Configuration) Sub

func (c *Configuration) Sub(key string) *Configuration

Sub returns new Configuration instance representing a sub tree of this instance.

func (*Configuration) UnmarshalKey

func (c *Configuration) UnmarshalKey(key string, rawVal interface{}, opts ...GetOption) error

UnmarshalKey takes a single key and unmarshal it into a Struct.

func (*Configuration) UnmarshalWithExpect

func (c *Configuration) UnmarshalWithExpect(key string, expect interface{}) interface{}

UnmarshalWithExpect unmarshal key, returns expect if failed

func (*Configuration) WriteConfig

func (c *Configuration) WriteConfig() error

WriteConfig ...

type DataSource

type DataSource interface {
	ReadConfig() ([]byte, error)
	IsConfigChanged() <-chan struct{}
	io.Closer
}

DataSource ...

func NewDataSource added in v0.3.1

func NewDataSource(configAddr string) (DataSource, error)

NewDataSource ..

type DataSourceCreatorFunc added in v0.3.1

type DataSourceCreatorFunc func() DataSource

DataSourceCreatorFunc represents a dataSource creator function

type GetOption

type GetOption func(o *GetOptions)

GetOption ...

func BuildinModule added in v0.3.1

func BuildinModule(module string) GetOption

func Module added in v0.3.1

func Module(module string) GetOption

func Namespace added in v0.3.1

func Namespace(namespace string) GetOption

func TagName

func TagName(tag string) GetOption

设置Tag

func TagNameJSON added in v0.3.1

func TagNameJSON() GetOption

func TagNameTOML added in v0.3.1

func TagNameTOML() GetOption

func TagNameYAML added in v0.3.1

func TagNameYAML() GetOption

type GetOptions

type GetOptions struct {
	TagName   string
	Namespace string
	Module    string
}

GetOption ...

type Unmarshaller

type Unmarshaller = func([]byte, interface{}) error

Unmarshaller ...

Directories

Path Synopsis
datasource

Jump to

Keyboard shortcuts

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