Documentation ¶
Overview ¶
Package config is used to parse config. Usage:
import "github.com/flycash/beego-web/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://beego.me/docs/module/config.md
Index ¶
- func ExpandValueEnv(value string) (realValue string)
- func ExpandValueEnvForMap(m map[string]interface{}) map[string]interface{}
- func ParseBool(val interface{}) (value bool, err error)
- func Register(name string, adapter Config)
- func ToString(x interface{}) string
- type BaseConfiger
- func (c *BaseConfiger) Bool(ctx context.Context, key string) (bool, error)
- func (c *BaseConfiger) DefaultBool(ctx context.Context, key string, defaultVal bool) bool
- func (c *BaseConfiger) DefaultFloat(ctx context.Context, key string, defaultVal float64) float64
- func (c *BaseConfiger) DefaultInt(ctx context.Context, key string, defaultVal int) int
- func (c *BaseConfiger) DefaultInt64(ctx context.Context, key string, defaultVal int64) int64
- func (c *BaseConfiger) DefaultString(ctx context.Context, key string, defaultVal string) string
- func (c *BaseConfiger) DefaultStrings(ctx context.Context, key string, defaultVal []string) []string
- func (c *BaseConfiger) Float(ctx context.Context, key string) (float64, error)
- func (c *BaseConfiger) Int(ctx context.Context, key string) (int, error)
- func (c *BaseConfiger) Int64(ctx context.Context, key string) (int64, error)
- func (c *BaseConfiger) OnChange(ctx context.Context, key string, fn func(value string))
- func (c *BaseConfiger) String(ctx context.Context, key string) (string, error)
- func (c *BaseConfiger) Strings(ctx context.Context, key string) ([]string, error)
- func (c *BaseConfiger) Sub(ctx context.Context, key string) (Configer, error)
- func (c *BaseConfiger) Unmarshaler(ctx context.Context, prefix string, obj interface{}, opt ...DecodeOption) error
- type Config
- type Configer
- type DecodeOption
- type IniConfig
- type IniConfigContainer
- func (c *IniConfigContainer) Bool(ctx context.Context, key string) (bool, error)
- func (c *IniConfigContainer) DIY(ctx context.Context, key string) (v interface{}, err error)
- func (c *IniConfigContainer) DefaultBool(ctx context.Context, key string, defaultVal bool) bool
- func (c *IniConfigContainer) DefaultFloat(ctx context.Context, key string, defaultVal float64) float64
- func (c *IniConfigContainer) DefaultInt(ctx context.Context, key string, defaultVal int) int
- func (c *IniConfigContainer) DefaultInt64(ctx context.Context, key string, defaultVal int64) int64
- func (c *IniConfigContainer) DefaultString(ctx context.Context, key string, defaultVal string) string
- func (c *IniConfigContainer) DefaultStrings(ctx context.Context, key string, defaultVal []string) []string
- func (c *IniConfigContainer) Float(ctx context.Context, key string) (float64, error)
- func (c *IniConfigContainer) GetSection(ctx context.Context, section string) (map[string]string, error)
- func (c *IniConfigContainer) Int(ctx context.Context, key string) (int, error)
- func (c *IniConfigContainer) Int64(ctx context.Context, key string) (int64, error)
- func (c *IniConfigContainer) SaveConfigFile(ctx context.Context, filename string) (err error)
- func (c *IniConfigContainer) Set(ctx context.Context, key, val string) error
- func (c *IniConfigContainer) String(ctx context.Context, key string) (string, error)
- func (c *IniConfigContainer) Strings(ctx context.Context, key string) ([]string, error)
- Bugs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 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.
Types ¶
type BaseConfiger ¶
type BaseConfiger struct {
// contains filtered or unexported fields
}
func NewBaseConfiger ¶
func (*BaseConfiger) DefaultBool ¶
func (*BaseConfiger) DefaultFloat ¶
func (*BaseConfiger) DefaultInt ¶
func (*BaseConfiger) DefaultInt64 ¶
func (*BaseConfiger) DefaultString ¶
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(ctx context.Context, key string, defaultVal []string) []string
DefaultStrings returns the []string value for a given key. if err != nil return defaultval
func (*BaseConfiger) OnChange ¶
func (c *BaseConfiger) OnChange(ctx context.Context, key string, fn func(value string))
TODO remove this before release v2.0.0
func (*BaseConfiger) Strings ¶
Strings returns the []string value for a given key. Return nil if config value does not exist or is empty.
func (*BaseConfiger) Unmarshaler ¶
func (c *BaseConfiger) Unmarshaler(ctx context.Context, prefix string, obj interface{}, opt ...DecodeOption) error
TODO remove this before release v2.0.0
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(ctx context.Context, 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(ctx context.Context, key string) (string, error) // get string slice Strings(ctx context.Context, key string) ([]string, error) Int(ctx context.Context, key string) (int, error) Int64(ctx context.Context, key string) (int64, error) Bool(ctx context.Context, key string) (bool, error) Float(ctx context.Context, 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(ctx context.Context, key string, defaultVal string) string // get string slice DefaultStrings(ctx context.Context, key string, defaultVal []string) []string DefaultInt(ctx context.Context, key string, defaultVal int) int DefaultInt64(ctx context.Context, key string, defaultVal int64) int64 DefaultBool(ctx context.Context, key string, defaultVal bool) bool DefaultFloat(ctx context.Context, key string, defaultVal float64) float64 DIY(ctx context.Context, key string) (interface{}, error) GetSection(ctx context.Context, section string) (map[string]string, error) Unmarshaler(ctx context.Context, prefix string, obj interface{}, opt ...DecodeOption) error Sub(ctx context.Context, key string) (Configer, error) OnChange(ctx context.Context, key string, fn func(value string)) SaveConfigFile(ctx context.Context, 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) DIY ¶
func (c *IniConfigContainer) DIY(ctx context.Context, key string) (v interface{}, err error)
DIY returns the raw value by a given key.
func (*IniConfigContainer) DefaultBool ¶
DefaultBool returns the boolean value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultFloat ¶
func (c *IniConfigContainer) DefaultFloat(ctx context.Context, key string, defaultVal float64) float64
DefaultFloat returns the float64 value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultInt ¶
DefaultInt returns the integer value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultInt64 ¶
DefaultInt64 returns the int64 value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) DefaultString ¶
func (c *IniConfigContainer) DefaultString(ctx context.Context, 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(ctx context.Context, key string, defaultVal []string) []string
DefaultStrings returns the []string value for a given key. if err != nil return defaultVal
func (*IniConfigContainer) GetSection ¶
func (c *IniConfigContainer) GetSection(ctx context.Context, section string) (map[string]string, error)
GetSection returns map for the given section
func (*IniConfigContainer) SaveConfigFile ¶
func (c *IniConfigContainer) SaveConfigFile(ctx context.Context, 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(ctx context.Context, 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.
Notes ¶
Bugs ¶
The environment variable config item will be saved with real value in SaveConfigFile Function.