61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
package config
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"game/common/config"
|
|
"game/common/constant"
|
|
"github.com/fox/fox/db"
|
|
"github.com/fox/fox/log"
|
|
)
|
|
|
|
const (
|
|
gateKey = "gate_config"
|
|
gateAddress1 = "0.0.0.0:5100"
|
|
gateAddress2 = "0.0.0.0:5101"
|
|
)
|
|
|
|
var Command *config.Command
|
|
var Cfg *config.Common
|
|
var GateCfg = &GateConfig{}
|
|
|
|
type GateConfig struct {
|
|
Address []string `json:"address"` // 网关地址
|
|
}
|
|
|
|
func InitLog() {
|
|
log.Open("./log/gate.log", log.DebugL)
|
|
log.Info("")
|
|
log.Info("")
|
|
log.Info("")
|
|
log.Info("-----init log success-----")
|
|
}
|
|
|
|
func LoadConfig(GitCommit, GitBranch, BuildDate string) {
|
|
Command = config.ParseCommand()
|
|
rdb, err := db.InitRedis(Command.RedisPassword, Command.RedisHost, Command.RedisPort, constant.Redis0Config)
|
|
if err != nil {
|
|
log.Error(err.Error())
|
|
return
|
|
}
|
|
defer func() { _ = rdb.Close() }()
|
|
Cfg, err = config.LoadCommonConfig(rdb, GitCommit, GitBranch, BuildDate)
|
|
if err != nil {
|
|
log.Error(err.Error())
|
|
return
|
|
}
|
|
if err = config.LoadGameConfig(rdb, gateKey, Cfg); err != nil {
|
|
log.DebugF("load config:empty etcd key")
|
|
GateCfg = &GateConfig{
|
|
Address: []string{gateAddress1, gateAddress2},
|
|
}
|
|
if bs, err := json.Marshal(GateCfg); err == nil {
|
|
err = rdb.Set(context.Background(), gateKey, string(bs), 0).Err()
|
|
}
|
|
} else {
|
|
_ = json.Unmarshal([]byte(Cfg.GameJson), GateCfg)
|
|
}
|
|
log.DebugF("load common config success")
|
|
_ = Cfg
|
|
}
|