mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-21 10:32:35 +01:00
.. | ||
ini | ||
timeconv | ||
.gitignore | ||
.travis.yml | ||
config.go | ||
go.mod | ||
go.sum | ||
LICENSE | ||
listener.go | ||
nocopy.go | ||
README.md | ||
source.go | ||
srcfile.go | ||
srcmap.go |
cfg
Go package for app configuration. Supports chained configuration sources for multiple levels of defaults. Includes APIs for loading Linux style configuration files (name/value pairs) or INI files, map based properties, or easily create new configuration sources (e.g. load from database).
Supports monitoring configuration sources for changes, hot loading properties, and notifying listeners of changes.
Usage
:= &cfg.Config{}
config defer config.Shutdown() // stops monitoring
// load file via filespec string, os.File
, err := Config.NewSrcFileFromFilespec("./myfile.conf")
srcif err != nil {
return err
}
// add src to top of chain, meaning first searched
.PrependSource(src)
cfg
// fetch prop 'retries', default to 3 if not found
:= config.Int("retries", 3) val
See example for more complete example, including listening for configuration changes.
Config API parses the following data types:
type | method | example property values |
---|---|---|
string | Config.String | test, “” |
int | Config.Int | -1, 77, 0 |
int64 | Config.Int64 | -9223372036854775, 372036854775808 |
float64 | Config.Float64 | -77.3456, 95642331.1 |
bool | Config.Bool | T,t,true,True,1,0,False,false,f,F |
time.Duration | Config.Duration | “10ms”, “2 hours”, “5 min” * |
* Units of measure supported: ms, sec, min, hour, day, week, year.