Improviong dynamic load of configs by putting only one variable one
Cette révision appartient à :
Parent
cccd389ccd
révision
4714c5c0f5
|
@ -9,16 +9,9 @@ import (
|
|||
yaml "gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
var (
|
||||
// DefaultConfigPath : path to the default config file (please do not change it)
|
||||
DefaultConfigPath = "config/default_config.yml"
|
||||
// ConfigPath : path to the user specific config file (please do not change it)
|
||||
ConfigPath = "config/config.yml"
|
||||
)
|
||||
|
||||
var config *Config
|
||||
var once sync.Once
|
||||
var configpaths = []string{DefaultConfigPath, ConfigPath}
|
||||
var Configpaths = []string{"config/default_config.yml", "config/config.yml"}
|
||||
|
||||
func Get() *Config {
|
||||
once.Do(func() {
|
||||
|
@ -60,13 +53,13 @@ func init() {
|
|||
|
||||
// Reload the configuration from the files provided in the config variables
|
||||
func Reload() {
|
||||
configor.Load(Get(), configpaths...)
|
||||
configor.Load(Get(), Configpaths...)
|
||||
}
|
||||
|
||||
// BindFlags returns a function which is to be used after
|
||||
// flag.Parse to check and copy the flags' values to the Config instance.
|
||||
func BindFlags() func() {
|
||||
confFile := flag.String("conf", ConfigPath, "path to the configuration file")
|
||||
confFile := flag.String("conf", Configpaths[1], "path to the configuration file")
|
||||
flag.StringVar(&Get().DBType, "dbtype", Get().DBType, "database backend")
|
||||
flag.StringVar(&Get().Host, "host", Get().Host, "binding address of the server")
|
||||
flag.IntVar(&Get().Port, "port", Get().Port, "port of the server")
|
||||
|
@ -74,7 +67,7 @@ func BindFlags() func() {
|
|||
flag.StringVar(&Get().DBLogMode, "dblogmode", Get().DBLogMode, "database log verbosity (errors only by default)")
|
||||
return func() {
|
||||
if *confFile != "" {
|
||||
configpaths = append(configpaths, *confFile)
|
||||
Configpaths = append(Configpaths, *confFile)
|
||||
Reload()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,7 @@ import (
|
|||
)
|
||||
|
||||
var _ = func() (_ struct{}) {
|
||||
ConfigPath = "config.yml"
|
||||
DefaultConfigPath = "default_config.yml"
|
||||
Configpaths = []string{"config.yml", "default_config.yml"}
|
||||
Reload()
|
||||
return
|
||||
}()
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
|
||||
// run before config/parse.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
config.ConfigPath = path.Join("..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
return
|
||||
}()
|
||||
|
|
|
@ -21,8 +21,8 @@ import (
|
|||
// run before router/init.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
config.ConfigPath = path.Join("..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
categories.InitCategories()
|
||||
return
|
||||
|
|
|
@ -26,8 +26,8 @@ import (
|
|||
// run before router/init.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
config.ConfigPath = path.Join("..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
return
|
||||
}()
|
||||
|
|
|
@ -13,8 +13,8 @@ import (
|
|||
|
||||
// run before config/parse.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
config.ConfigPath = path.Join("..", "..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
return
|
||||
}()
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
|
||||
// run before config/parse.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
config.ConfigPath = path.Join("..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
return
|
||||
}()
|
||||
|
|
|
@ -17,8 +17,8 @@ import (
|
|||
|
||||
// run before config/parse.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
config.ConfigPath = path.Join("..", "..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
return
|
||||
}()
|
||||
|
|
|
@ -12,8 +12,8 @@ import (
|
|||
|
||||
// run before config/parse.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
config.ConfigPath = path.Join("..", "..", "..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", "..", "..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", "..", "..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", "..", "..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
categories.InitCategories()
|
||||
return
|
||||
|
|
|
@ -14,8 +14,8 @@ import (
|
|||
|
||||
// run before config/parse.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
config.ConfigPath = path.Join("..", "..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
config.Get().I18n.Directory = path.Join("..", "..", config.Get().I18n.Directory)
|
||||
return
|
||||
|
|
|
@ -13,8 +13,8 @@ import (
|
|||
|
||||
// run before config/parse.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
config.ConfigPath = path.Join("..", "..", "..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", "..", "..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", "..", "..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", "..", "..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
config.Get().I18n.Directory = path.Join("..", "..", "..", config.Get().I18n.Directory)
|
||||
categories.InitCategories()
|
||||
|
|
|
@ -12,8 +12,8 @@ import (
|
|||
|
||||
// run before config/parse.go:init()
|
||||
var _ = func() (_ struct{}) {
|
||||
config.ConfigPath = path.Join("..", "..", config.ConfigPath)
|
||||
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath)
|
||||
config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
|
||||
config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
|
||||
config.Reload()
|
||||
return
|
||||
}()
|
||||
|
|
Référencer dans un nouveau ticket