visedriver/config/config.go

68 lines
1.3 KiB
Go
Raw Normal View History

2025-01-12 11:24:50 +01:00
package config
import (
"strings"
2025-01-20 10:07:28 +01:00
"git.defalsify.org/vise.git/logging"
2025-01-12 11:24:50 +01:00
"git.grassecon.net/grassrootseconomics/visedriver/env"
)
var (
2025-01-20 10:07:28 +01:00
defaultLanguage = "eng"
2025-01-12 11:24:50 +01:00
languages []string
)
var (
DbConn string
DefaultLanguage string
Languages []string
)
func setLanguage() error {
defaultLanguage = env.GetEnv("DEFAULT_LANGUAGE", defaultLanguage)
languages = strings.Split(env.GetEnv("LANGUAGES", defaultLanguage), ",")
haveDefaultLanguage := false
2025-01-20 10:07:28 +01:00
for i, v := range languages {
2025-01-12 11:24:50 +01:00
languages[i] = strings.ReplaceAll(v, " ", "")
if languages[i] == defaultLanguage {
haveDefaultLanguage = true
}
}
if !haveDefaultLanguage {
languages = append([]string{defaultLanguage}, languages...)
}
return nil
}
func setConn() error {
DbConn = env.GetEnv("DB_CONN", "")
return nil
}
// LoadConfig initializes the configuration values after environment variables are loaded.
func LoadConfig() error {
2025-01-20 10:07:28 +01:00
if err := setLanguage(); err != nil {
2025-01-12 11:24:50 +01:00
return err
}
2025-01-20 10:07:28 +01:00
if err := setConn(); err != nil {
2025-01-12 11:24:50 +01:00
return err
}
DefaultLanguage = defaultLanguage
Languages = languages
2025-01-20 10:07:28 +01:00
// Create and use reporter
logger := logging.NewVanilla().WithDomain("config")
reporter := NewReporter(logger)
reporter.AddValue("CUSTOM_SETTING", func() string {
return env.GetEnv("CUSTOM_SETTING", "default")
}, false)
reporter.Report("INFO")
2025-01-12 11:24:50 +01:00
return nil
}