Albirew/nyaa-pantsu
Albirew
/
nyaa-pantsu
Archivé
1
0
Bifurcation 0

Improviong dynamic load of configs by putting only one variable one

Cette révision appartient à :
akuma06 2017-07-21 01:36:25 +02:00
Parent cccd389ccd
révision 4714c5c0f5
12 fichiers modifiés avec 25 ajouts et 33 suppressions

Voir le fichier

@ -9,16 +9,9 @@ import (
yaml "gopkg.in/yaml.v2" 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 config *Config
var once sync.Once var once sync.Once
var configpaths = []string{DefaultConfigPath, ConfigPath} var Configpaths = []string{"config/default_config.yml", "config/config.yml"}
func Get() *Config { func Get() *Config {
once.Do(func() { once.Do(func() {
@ -60,13 +53,13 @@ func init() {
// Reload the configuration from the files provided in the config variables // Reload the configuration from the files provided in the config variables
func Reload() { func Reload() {
configor.Load(Get(), configpaths...) configor.Load(Get(), Configpaths...)
} }
// BindFlags returns a function which is to be used after // BindFlags returns a function which is to be used after
// flag.Parse to check and copy the flags' values to the Config instance. // flag.Parse to check and copy the flags' values to the Config instance.
func BindFlags() func() { 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().DBType, "dbtype", Get().DBType, "database backend")
flag.StringVar(&Get().Host, "host", Get().Host, "binding address of the server") flag.StringVar(&Get().Host, "host", Get().Host, "binding address of the server")
flag.IntVar(&Get().Port, "port", Get().Port, "port 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)") flag.StringVar(&Get().DBLogMode, "dblogmode", Get().DBLogMode, "database log verbosity (errors only by default)")
return func() { return func() {
if *confFile != "" { if *confFile != "" {
configpaths = append(configpaths, *confFile) Configpaths = append(Configpaths, *confFile)
Reload() Reload()
} }
} }

Voir le fichier

@ -10,8 +10,7 @@ import (
) )
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
ConfigPath = "config.yml" Configpaths = []string{"config.yml", "default_config.yml"}
DefaultConfigPath = "default_config.yml"
Reload() Reload()
return return
}() }()

Voir le fichier

@ -11,8 +11,8 @@ import (
// run before config/parse.go:init() // run before config/parse.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
config.ConfigPath = path.Join("..", config.ConfigPath) config.Configpaths[1] = path.Join("..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", config.Configpaths[0])
config.Reload() config.Reload()
return return
}() }()

Voir le fichier

@ -21,8 +21,8 @@ import (
// run before router/init.go:init() // run before router/init.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
gin.SetMode(gin.TestMode) gin.SetMode(gin.TestMode)
config.ConfigPath = path.Join("..", config.ConfigPath) config.Configpaths[1] = path.Join("..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", config.Configpaths[0])
config.Reload() config.Reload()
categories.InitCategories() categories.InitCategories()
return return

Voir le fichier

@ -26,8 +26,8 @@ import (
// run before router/init.go:init() // run before router/init.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
gin.SetMode(gin.TestMode) gin.SetMode(gin.TestMode)
config.ConfigPath = path.Join("..", config.ConfigPath) config.Configpaths[1] = path.Join("..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", config.Configpaths[0])
config.Reload() config.Reload()
return return
}() }()

Voir le fichier

@ -13,8 +13,8 @@ import (
// run before config/parse.go:init() // run before config/parse.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
config.ConfigPath = path.Join("..", "..", config.ConfigPath) config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
config.Reload() config.Reload()
return return
}() }()

Voir le fichier

@ -11,8 +11,8 @@ import (
// run before config/parse.go:init() // run before config/parse.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
config.ConfigPath = path.Join("..", config.ConfigPath) config.Configpaths[1] = path.Join("..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", config.Configpaths[0])
config.Reload() config.Reload()
return return
}() }()

Voir le fichier

@ -17,8 +17,8 @@ import (
// run before config/parse.go:init() // run before config/parse.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
config.ConfigPath = path.Join("..", "..", config.ConfigPath) config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
config.Reload() config.Reload()
return return
}() }()

Voir le fichier

@ -12,8 +12,8 @@ import (
// run before config/parse.go:init() // run before config/parse.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
config.ConfigPath = path.Join("..", "..", "..", config.ConfigPath) config.Configpaths[1] = path.Join("..", "..", "..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", "..", "..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", "..", "..", config.Configpaths[0])
config.Reload() config.Reload()
categories.InitCategories() categories.InitCategories()
return return

Voir le fichier

@ -14,8 +14,8 @@ import (
// run before config/parse.go:init() // run before config/parse.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
config.ConfigPath = path.Join("..", "..", config.ConfigPath) config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
config.Reload() config.Reload()
config.Get().I18n.Directory = path.Join("..", "..", config.Get().I18n.Directory) config.Get().I18n.Directory = path.Join("..", "..", config.Get().I18n.Directory)
return return

Voir le fichier

@ -13,8 +13,8 @@ import (
// run before config/parse.go:init() // run before config/parse.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
config.ConfigPath = path.Join("..", "..", "..", config.ConfigPath) config.Configpaths[1] = path.Join("..", "..", "..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", "..", "..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", "..", "..", config.Configpaths[0])
config.Reload() config.Reload()
config.Get().I18n.Directory = path.Join("..", "..", "..", config.Get().I18n.Directory) config.Get().I18n.Directory = path.Join("..", "..", "..", config.Get().I18n.Directory)
categories.InitCategories() categories.InitCategories()

Voir le fichier

@ -12,8 +12,8 @@ import (
// run before config/parse.go:init() // run before config/parse.go:init()
var _ = func() (_ struct{}) { var _ = func() (_ struct{}) {
config.ConfigPath = path.Join("..", "..", config.ConfigPath) config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath) config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
config.Reload() config.Reload()
return return
}() }()