SimpleCloudNotifier/server/config.go

90 lines
1.6 KiB
Go
Raw Normal View History

2022-11-13 19:17:07 +01:00
package server
import (
"github.com/rs/zerolog/log"
"os"
2022-11-18 21:25:40 +01:00
"time"
2022-11-13 19:17:07 +01:00
)
type Config struct {
2022-11-18 21:25:40 +01:00
Namespace string
GinDebug bool
ServerIP string
ServerPort string
DBFile string
RequestTimeout time.Duration
ReturnRawErrors bool
2022-11-13 19:17:07 +01:00
}
var Conf Config
var configLoc = Config{
2022-11-18 21:25:40 +01:00
Namespace: "local",
GinDebug: true,
ServerIP: "0.0.0.0",
ServerPort: "8080",
DBFile: ".run-data/db.sqlite3",
RequestTimeout: 16 * time.Second,
ReturnRawErrors: true,
2022-11-13 19:17:07 +01:00
}
var configDev = Config{
2022-11-18 21:25:40 +01:00
Namespace: "develop",
GinDebug: true,
ServerIP: "0.0.0.0",
ServerPort: "80",
DBFile: "/data/scn.sqlite3",
RequestTimeout: 16 * time.Second,
ReturnRawErrors: true,
2022-11-13 19:17:07 +01:00
}
var configStag = Config{
2022-11-18 21:25:40 +01:00
Namespace: "staging",
GinDebug: true,
ServerIP: "0.0.0.0",
ServerPort: "80",
DBFile: "/data/scn.sqlite3",
RequestTimeout: 16 * time.Second,
ReturnRawErrors: true,
2022-11-13 19:17:07 +01:00
}
var configProd = Config{
2022-11-18 21:25:40 +01:00
Namespace: "production",
GinDebug: false,
ServerIP: "0.0.0.0",
ServerPort: "80",
DBFile: "/data/scn.sqlite3",
RequestTimeout: 16 * time.Second,
ReturnRawErrors: false,
2022-11-13 19:17:07 +01:00
}
var allConfig = []Config{
configLoc,
configDev,
configStag,
configProd,
}
func getConfig(ns string) (Config, bool) {
if ns == "" {
return configLoc, true
}
for _, c := range allConfig {
if c.Namespace == ns {
return c, true
}
}
return Config{}, false
}
func init() {
ns := os.Getenv("CONF_NS")
cfg, ok := getConfig(ns)
if !ok {
log.Fatal().Str("ns", ns).Msg("Unknown config-namespace")
}
Conf = cfg
}