config

package
v0.0.0-...-a1ab60e Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2020 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package config is used to parse config. Usage:

import "github.com/flycash/beego-orm/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

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExpandValueEnv

func ExpandValueEnv(value string) (realValue string)

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

func ExpandValueEnvForMap(m map[string]interface{}) map[string]interface{}

ExpandValueEnvForMap convert all string value with environment variable.

func ParseBool

func ParseBool(val interface{}) (value bool, err error)

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

func Register(name string, adapter Config)

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 ToString

func ToString(x interface{}) string

ToString converts values of any type to string.

Types

type BaseConfiger

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

func NewBaseConfiger

func NewBaseConfiger(reader func(ctx context.Context, key string) (string, error)) BaseConfiger

func (*BaseConfiger) Bool

func (c *BaseConfiger) Bool(ctx context.Context, key string) (bool, error)

func (*BaseConfiger) DefaultBool

func (c *BaseConfiger) DefaultBool(ctx context.Context, key string, defaultVal bool) bool

func (*BaseConfiger) DefaultFloat

func (c *BaseConfiger) DefaultFloat(ctx context.Context, key string, defaultVal float64) float64

func (*BaseConfiger) DefaultInt

func (c *BaseConfiger) DefaultInt(ctx context.Context, key string, defaultVal int) int

func (*BaseConfiger) DefaultInt64

func (c *BaseConfiger) DefaultInt64(ctx context.Context, key string, defaultVal int64) int64

func (*BaseConfiger) DefaultString

func (c *BaseConfiger) DefaultString(ctx context.Context, 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(ctx context.Context, key string, defaultVal []string) []string

DefaultStrings returns the []string value for a given key. if err != nil return defaultval

func (*BaseConfiger) Float

func (c *BaseConfiger) Float(ctx context.Context, key string) (float64, error)

func (*BaseConfiger) Int

func (c *BaseConfiger) Int(ctx context.Context, key string) (int, error)

func (*BaseConfiger) Int64

func (c *BaseConfiger) Int64(ctx context.Context, key string) (int64, error)

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) String

func (c *BaseConfiger) String(ctx context.Context, key string) (string, error)

func (*BaseConfiger) Strings

func (c *BaseConfiger) Strings(ctx context.Context, 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 (*BaseConfiger) Sub

func (c *BaseConfiger) Sub(ctx context.Context, key string) (Configer, error)

TODO remove this before release v2.0.0

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 NewConfig

func NewConfig(adapterName, filename string) (Configer, error)

NewConfig adapterName is ini/json/xml/yaml. filename is the config file path.

func NewConfigData

func NewConfigData(adapterName string, data []byte) (Configer, error)

NewConfigData adapterName is ini/json/xml/yaml. data is the config data.

func NewFakeConfig

func NewFakeConfig() Configer

NewFakeConfig return a fake Configer

type DecodeOption

type DecodeOption func(options decodeOptions)

type IniConfig

type IniConfig struct {
}

IniConfig implements Config to parse ini file.

func (*IniConfig) Parse

func (ini *IniConfig) Parse(name string) (Configer, error)

Parse creates a new Config and parses the file configuration from the named file.

func (*IniConfig) ParseData

func (ini *IniConfig) ParseData(data []byte) (Configer, error)

ParseData parse ini the data When include other.conf,other.conf is either absolute directory or under beego in default temporary directory(/tmp/beego[-username]).

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(ctx context.Context, key string) (bool, error)

Bool returns the boolean value for a given key.

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

func (c *IniConfigContainer) DefaultBool(ctx context.Context, 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(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

func (c *IniConfigContainer) DefaultInt(ctx context.Context, 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(ctx context.Context, 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(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) Float

func (c *IniConfigContainer) Float(ctx context.Context, key string) (float64, error)

Float returns the float value for a given key.

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) Int

func (c *IniConfigContainer) Int(ctx context.Context, key string) (int, error)

Int returns the integer value for a given key.

func (*IniConfigContainer) Int64

func (c *IniConfigContainer) Int64(ctx context.Context, key string) (int64, error)

Int64 returns the int64 value for a given key.

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.

func (*IniConfigContainer) String

func (c *IniConfigContainer) String(ctx context.Context, key string) (string, error)

String returns the string value for a given key.

func (*IniConfigContainer) Strings

func (c *IniConfigContainer) Strings(ctx context.Context, key string) ([]string, error)

Strings returns the []string value for a given key. Return nil if config value does not exist or is empty.

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 depend on github.com/beego/goyaml2 go install github.com/beego/goyaml2 Usage: import( _ "github.com/flycash/beego-orm/config/yaml" "github.com/flycash/beego-orm/config" ) cnf, err := config.NewConfig("yaml", "config.yaml") More docs http://beego.me/docs/module/config.md
Package yaml for config provider depend on github.com/beego/goyaml2 go install github.com/beego/goyaml2 Usage: import( _ "github.com/flycash/beego-orm/config/yaml" "github.com/flycash/beego-orm/config" ) cnf, err := config.NewConfig("yaml", "config.yaml") More docs http://beego.me/docs/module/config.md

Jump to

Keyboard shortcuts

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