Merge branch 'config-singleton' into 'main'
Move the config package to a singleton pattern See merge request whom/bingobot!11
This commit is contained in:
commit
1ca6b0b402
3 changed files with 20 additions and 17 deletions
|
|
@ -16,9 +16,13 @@ type AppConfig struct {
|
||||||
LogAddSource bool `yaml:"log_add_source"`
|
LogAddSource bool `yaml:"log_add_source"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func Parse() (*AppConfig, error) {
|
var config *AppConfig
|
||||||
var appConfig *AppConfig
|
|
||||||
|
|
||||||
|
func Get() *AppConfig {
|
||||||
|
return config
|
||||||
|
}
|
||||||
|
|
||||||
|
func Init() error {
|
||||||
setDefaults()
|
setDefaults()
|
||||||
|
|
||||||
// automatically populate config with any matching environment vars
|
// automatically populate config with any matching environment vars
|
||||||
|
|
@ -31,15 +35,15 @@ func Parse() (*AppConfig, error) {
|
||||||
|
|
||||||
err := viper.ReadInConfig()
|
err := viper.ReadInConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error reading configs: %s", err)
|
return fmt.Errorf("error reading configs: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = viper.Unmarshal(&appConfig)
|
err = viper.Unmarshal(&config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error unmarshaling configs: %s", err)
|
return fmt.Errorf("error unmarshaling configs: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return appConfig, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDefaults() {
|
func setDefaults() {
|
||||||
|
|
|
||||||
|
|
@ -16,20 +16,21 @@ var (
|
||||||
logger Logger
|
logger Logger
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init(appConfig *config.AppConfig) {
|
func Init() {
|
||||||
|
cfg := config.Get()
|
||||||
|
|
||||||
lj := &lumberjack.Logger{
|
lj := &lumberjack.Logger{
|
||||||
Filename: filepath.Join(appConfig.LogDir, appConfig.LogFile),
|
Filename: filepath.Join(cfg.LogDir, cfg.LogFile),
|
||||||
MaxSize: appConfig.LogMaxSizeMB,
|
MaxSize: cfg.LogMaxSizeMB,
|
||||||
MaxBackups: appConfig.LogMaxBackups,
|
MaxBackups: cfg.LogMaxBackups,
|
||||||
MaxAge: appConfig.LogMaxAgeDays,
|
MaxAge: cfg.LogMaxAgeDays,
|
||||||
Compress: appConfig.LogCompression,
|
Compress: cfg.LogCompression,
|
||||||
}
|
}
|
||||||
|
|
||||||
logger = Logger{
|
logger = Logger{
|
||||||
slog.New(
|
slog.New(
|
||||||
slog.NewJSONHandler(lj, &slog.HandlerOptions{
|
slog.NewJSONHandler(lj, &slog.HandlerOptions{
|
||||||
AddSource: appConfig.LogAddSource,
|
AddSource: cfg.LogAddSource,
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
6
main.go
6
main.go
|
|
@ -13,8 +13,6 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
token = flag.String("token", "", "Bot authentication token")
|
token = flag.String("token", "", "Bot authentication token")
|
||||||
|
|
||||||
appConfig *config.AppConfig
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
@ -22,13 +20,13 @@ func main() {
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
appConfig, err = config.Parse()
|
err = config.Init()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
logging.Init(appConfig)
|
logging.Init()
|
||||||
|
|
||||||
err = startBot()
|
err = startBot()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue