added template for new golang backend
This commit is contained in:
78
server/config.go
Normal file
78
server/config.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"github.com/rs/zerolog/log"
|
||||
"os"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Namespace string
|
||||
GinDebug bool
|
||||
ServerIP string
|
||||
ServerPort string
|
||||
DBFile string
|
||||
}
|
||||
|
||||
var Conf Config
|
||||
|
||||
var configLoc = Config{
|
||||
Namespace: "local",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "8080",
|
||||
DBFile: ".run-data/db.sqlite3",
|
||||
}
|
||||
|
||||
var configDev = Config{
|
||||
Namespace: "develop",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
}
|
||||
|
||||
var configStag = Config{
|
||||
Namespace: "staging",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
}
|
||||
|
||||
var configProd = Config{
|
||||
Namespace: "production",
|
||||
GinDebug: false,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user