Documentation ¶
Overview ¶
Package config is used to parse config. Usage:
import "github.com/W3-Engineers-Ltd/Radiant/core/config"
Examples.
cnf, err := config.NewConfig("ini", "config.conf") cnf APIS: cnf.Set(key, val string) error cnf.String(key string) string cnf.Strings(key string) []string cnf.Int(key string) (int, error) cnf.Int64(key string) (int64, error) cnf.Bool(key string) (bool, error) cnf.Float(key string) (float64, error) cnf.DefaultString(key string, defaultVal string) string cnf.DefaultStrings(key string, defaultVal []string) []string cnf.DefaultInt(key string, defaultVal int) int cnf.DefaultInt64(key string, defaultVal int64) int64 cnf.DefaultBool(key string, defaultVal bool) bool cnf.DefaultFloat(key string, defaultVal float64) float64 cnf.DIY(key string) (interface{}, error) cnf.GetSection(section string) (map[string]string, error) cnf.SaveConfigFile(filename string) error
More docs http://radiant.me/docs/module/config.md
Index ¶
- Variables
- func Bool(key string) (bool, error)
- func DIY(key string) (interface{}, error)
- func DefaultBool(key string, defaultVal bool) bool
- func DefaultFloat(key string, defaultVal float64) float64
- func DefaultInt(key string, defaultVal int) int
- func DefaultInt64(key string, defaultVal int64) int64
- func DefaultString(key string, defaultVal string) string
- func DefaultStrings(key string, defaultVal []string) []string
- func ExpandValueEnv(value string) (realValue string)
- func ExpandValueEnvForMap(m map[string]interface{}) map[string]interface{}
- func Float(key string) (float64, error)
- func GetSection(section string) (map[string]string, error)
- func InitGlobalInstance(name string, cfg string) error
- func Int(key string) (int, error)
- func Int64(key string) (int64, error)
- func OnChange(key string, fn func(value string))
- func ParseBool(val interface{}) (value bool, err error)
- func Register(name string, adapter Config)
- func SaveConfigFile(filename string) error
- func Set(key, val string) error
- func String(key string) (string, error)
- func Strings(key string) ([]string, error)
- func ToString(x interface{}) string
- func Unmarshaler(prefix string, obj interface{}, opt ...DecodeOption) error
- type BaseConfiger
- func (c *BaseConfiger) Bool(key string) (bool, error)
- func (c *BaseConfiger) DefaultBool(key string, defaultVal bool) bool
- func (c *BaseConfiger) DefaultFloat(key string, defaultVal float64) float64
- func (c *BaseConfiger) DefaultInt(key string, defaultVal int) int
- func (c *BaseConfiger) DefaultInt64(key string, defaultVal int64) int64
- func (c *BaseConfiger) DefaultString(key string, defaultVal string) string
- func (c *BaseConfiger) DefaultStrings(key string, defaultVal []string) []string
- func (c *BaseConfiger) Float(key string) (float64, error)
- func (c *BaseConfiger) Int(key string) (int, error)
- func (c *BaseConfiger) Int64(key string) (int64, error)
- func (*BaseConfiger) OnChange(_ string, _ func(value string))
- func (c *BaseConfiger) String(key string) (string, error)
- func (c *BaseConfiger) Strings(key string) ([]string, error)
- func (*BaseConfiger) Sub(string) (Configer, error)
- type Config
- type Configer
- type DecodeOption
- type IniConfig
- type IniConfigContainer
- func (c *IniConfigContainer) Bool(key string) (bool, error)
- func (c *IniConfigContainer) DIY(key string) (v interface{}, err error)
- func (c *IniConfigContainer) DefaultBool(key string, defaultVal bool) bool
- func (c *IniConfigContainer) DefaultFloat(key string, defaultVal float64) float64
- func (c *IniConfigContainer) DefaultInt(key string, defaultVal int) int
- func (c *IniConfigContainer) DefaultInt64(key string, defaultVal int64) int64
- func (c *IniConfigContainer) DefaultString(key string, defaultVal string) string
- func (c *IniConfigContainer) DefaultStrings(key string, defaultVal []string) []string
- func (c *IniConfigContainer) Float(key string) (float64, error)
- func (c *IniConfigContainer) GetSection(section string) (map[string]string, error)
- func (c *IniConfigContainer) Int(key string) (int, error)
- func (c *IniConfigContainer) Int64(key string) (int64, error)
- func (c *IniConfigContainer) SaveConfigFile(filename string) (err error)
- func (c *IniConfigContainer) Set(key, val string) error
- func (c *IniConfigContainer) String(key string) (string, error)
- func (c *IniConfigContainer) Strings(key string) ([]string, error)
- func (c *IniConfigContainer) Unmarshaler(prefix string, obj interface{}, opt ...DecodeOption) error
- Bugs
Constants ¶
This section is empty.
Variables ¶
var ( KeyNotFoundError = errors.New("the key is not found") InvalidValueTypeError = errors.New("the value is not expected type") )
now not all implementation return those error codes
Functions ¶
func DefaultBool ¶
func DefaultFloat ¶
func DefaultInt ¶
func DefaultInt64 ¶
func DefaultString ¶
support section::key type in key string when using ini and json type; Int,Int64,Bool,Float,DIY are same.
func DefaultStrings ¶
get string slice
func ExpandValueEnv ¶
ExpandValueEnv returns value of convert with environment variable.
Return environment variable if value start with "${" and end with "}". Return default value if environment variable is empty or not exist.
It accept value formats "${env}" , "${env||}}" , "${env||defaultValue}" , "defaultvalue". Examples:
v1 := config.ExpandValueEnv("${GOPATH}") // return the GOPATH environment variable. v2 := config.ExpandValueEnv("${GOAsta||/usr/local/go}") // return the default value "/usr/local/go/". v3 := config.ExpandValueEnv("Astaxie") // return the value "Astaxie".
func ExpandValueEnvForMap ¶
ExpandValueEnvForMap convert all string value with environment variable.
func InitGlobalInstance ¶
InitGlobalInstance will ini the global instance If you want to use specific implementation, don't forget to import it. e.g. _ import "github.com/W3-Engineers-Ltd/Radiant/core/config/etcd" err := InitGlobalInstance("etcd", "someconfig")
func ParseBool ¶
ParseBool returns the boolean value represented by the string.
It accepts 1, 1.0, t, T, TRUE, true, True, YES, yes, Yes,Y, y, ON, on, On, 0, 0.0, f, F, FALSE, false, False, NO, no, No, N,n, OFF, off, Off. Any other value returns an error.
func Register ¶
Register makes a config adapter available by the adapter name. If Register is called twice with the same name or if driver is nil, it panics.
func SaveConfigFile ¶
func String ¶
support section::key type in key string when using ini and json type; Int,Int64,Bool,Float,DIY are same.
func Unmarshaler ¶
func Unmarshaler(prefix string, obj interface{}, opt ...DecodeOption) error
Types ¶
type BaseConfiger ¶
type BaseConfiger struct {
// contains filtered or unexported fields
}
func NewBaseConfiger ¶
func (*BaseConfiger) DefaultBool ¶
func (c *BaseConfiger) DefaultBool(key string, defaultVal bool) bool
func (*BaseConfiger) DefaultFloat ¶
func (c *BaseConfiger) DefaultFloat(key string, defaultVal float64) float64
func (*BaseConfiger) DefaultInt ¶
func (c *BaseConfiger) DefaultInt(key string, defaultVal int) int
func (*BaseConfiger) DefaultInt64 ¶
func (c *BaseConfiger) DefaultInt64(key string, defaultVal int64) int64
func (*BaseConfiger) DefaultString ¶
func (c *BaseConfiger) DefaultString(key string, defaultVal string) string
DefaultString returns the string value for a given key. if err != nil or value is empty return defaultval
func (*BaseConfiger) DefaultStrings ¶
func (c *BaseConfiger) DefaultStrings(key string, defaultVal []string) []string
DefaultStrings returns the []string value for a given key. if err != nil return defaultval
func (*BaseConfiger) OnChange ¶
func (*BaseConfiger) OnChange(_ string, _ func(value string))
type Config ¶
type Config interface { Parse(key string) (Configer, error) ParseData(data []byte) (Configer, error) }
Config is the adapter interface for parsing config file to get raw data to Configer.
type Configer ¶
type Configer interface { // support section::key type in given key when using ini type. Set(key, val string) error // support section::key type in key string when using ini and json type; Int,Int64,Bool,Float,DIY are same. String(key string) (string, error) // get string slice Strings(key string) ([]string, error) Int(key string) (int, error) Int64(key string) (int64, error) Bool(key string) (bool, error) Float(key string) (float64, error) // support section::key type in key string when using ini and json type; Int,Int64,Bool,Float,DIY are same. DefaultString(key string, defaultVal string) string // get string slice DefaultStrings(key string, defaultVal []string) []string DefaultInt(key string, defaultVal int) int DefaultInt64(key string, defaultVal int64) int64 DefaultBool(key string, defaultVal bool) bool DefaultFloat(key string, defaultVal float64) float64 // DIY return the original value DIY(key string) (interface{}, error) GetSection(section string) (map[string]string, error) Unmarshaler(prefix string, obj interface{}, opt ...DecodeOption) error Sub(key string) (Configer, error) OnChange(key string, fn func(value string)) SaveConfigFile(filename string) error }
Configer defines how to get and set value from configuration raw data.
func NewConfigData ¶
NewConfigData adapterName is ini/json/xml/yaml. data is the config data.
type DecodeOption ¶
type DecodeOption func(options decodeOptions)
type IniConfig ¶
type IniConfig struct{}
IniConfig implements Config to parse ini file.
type IniConfigContainer ¶
type IniConfigContainer struct { BaseConfiger sync.RWMutex // contains filtered or unexported fields }
IniConfigContainer is a config which represents the ini configuration. When set and get value, support key as section:name type.
func (*IniConfigContainer) Bool ¶
func (c *IniConfigContainer) Bool(key string) (bool, error)
Bool returns the boolean value for a given key.
func (*IniConfigContainer) DIY ¶
func (c *IniConfigContainer) DIY(key string) (v interface{}, err error)
DIY returns the raw value by a given key.
func (*IniConfigContainer) DefaultBool ¶
func (c *IniConfigContainer) DefaultBool(key string, defaultVal bool) bool
DefaultBool returns the boolean value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultFloat ¶
func (c *IniConfigContainer) DefaultFloat(key string, defaultVal float64) float64
DefaultFloat returns the float64 value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultInt ¶
func (c *IniConfigContainer) DefaultInt(key string, defaultVal int) int
DefaultInt returns the integer value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultInt64 ¶
func (c *IniConfigContainer) DefaultInt64(key string, defaultVal int64) int64
DefaultInt64 returns the int64 value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultString ¶
func (c *IniConfigContainer) DefaultString(key string, defaultVal string) string
DefaultString returns the string value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultStrings ¶
func (c *IniConfigContainer) DefaultStrings(key string, defaultVal []string) []string
DefaultStrings returns the []string value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) Float ¶
func (c *IniConfigContainer) Float(key string) (float64, error)
Float returns the float value for a given key.
func (*IniConfigContainer) GetSection ¶
func (c *IniConfigContainer) GetSection(section string) (map[string]string, error)
GetSection returns map for the given section
func (*IniConfigContainer) Int ¶
func (c *IniConfigContainer) Int(key string) (int, error)
Int returns the integer value for a given key.
func (*IniConfigContainer) Int64 ¶
func (c *IniConfigContainer) Int64(key string) (int64, error)
Int64 returns the int64 value for a given key.
func (*IniConfigContainer) SaveConfigFile ¶
func (c *IniConfigContainer) SaveConfigFile(filename string) (err error)
SaveConfigFile save the config into file.
BUG(env): The environment variable config item will be saved with real value in SaveConfigFile Function.
func (*IniConfigContainer) Set ¶
func (c *IniConfigContainer) Set(key, val string) error
Set writes a new value for key. if write to one section, the key need be "section::key". if the section is not existed, it panics.
func (*IniConfigContainer) String ¶
func (c *IniConfigContainer) String(key string) (string, error)
String returns the string value for a given key.
func (*IniConfigContainer) Strings ¶
func (c *IniConfigContainer) Strings(key string) ([]string, error)
Strings returns the []string value for a given key. Return nil if config value does not exist or is empty.
func (*IniConfigContainer) Unmarshaler ¶
func (c *IniConfigContainer) Unmarshaler(prefix string, obj interface{}, opt ...DecodeOption) error
Notes ¶
Bugs ¶
The environment variable config item will be saved with real value in SaveConfigFile Function.
Directories ¶
Path | Synopsis |
---|---|
Package env is used to parse environment.
|
Package env is used to parse environment. |
Package xml for config provider.
|
Package xml for config provider. |
Package yaml for config provider Usage: import( _ "github.com/W3-Engineers-Ltd/Radiant/core/config/yaml" "github.com/W3-Engineers-Ltd/Radiant/core/config" ) cnf, err := config.NewConfig("yaml", "config.yaml") More docs http://radiant.me/docs/module/config.md
|
Package yaml for config provider Usage: import( _ "github.com/W3-Engineers-Ltd/Radiant/core/config/yaml" "github.com/W3-Engineers-Ltd/Radiant/core/config" ) cnf, err := config.NewConfig("yaml", "config.yaml") More docs http://radiant.me/docs/module/config.md |