This commit is contained in:
liwei 2022-09-22 11:54:20 +08:00
commit bf08e2b7ca
2 changed files with 43 additions and 1 deletions

View File

@ -3,6 +3,9 @@ package comm
//游戏区服配置 //游戏区服配置
type GameConfig struct { type GameConfig struct {
AreaId string //区服id 每个区服id都必须是唯一 AreaId string //区服id 每个区服id都必须是唯一
AreaName string //区服名
OpenServiceTime string //开服时间
Channel string //渠道
Loglevel int32 //日志文件输出级别 Loglevel int32 //日志文件输出级别
MaxAgeTime int32 //日志文件保存时长 MaxAgeTime int32 //日志文件保存时长
ConsulAddr []string //区服Consul ConsulAddr []string //区服Consul

View File

@ -11,6 +11,7 @@ import (
"net" "net"
"os" "os"
"os/exec" "os/exec"
"path/filepath"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@ -28,6 +29,13 @@ var (
crosspath string //服务列表下标 crosspath string //服务列表下标
sid string //服务列表下标 sid string //服务列表下标
) )
var confCmd = &cobra.Command{
Use: "conf",
Short: "生成配置",
Run: func(cmd *cobra.Command, args []string) {
conf()
},
}
var startCmd = &cobra.Command{ var startCmd = &cobra.Command{
Use: "start", Use: "start",
Short: "启动程序", Short: "启动程序",
@ -42,6 +50,14 @@ var stopCmd = &cobra.Command{
stop() stop()
}, },
} }
var restart = &cobra.Command{
Use: "restart",
Short: "重启服务",
Run: func(cmd *cobra.Command, args []string) {
stop()
start()
},
}
func emptyRun(*cobra.Command, []string) {} func emptyRun(*cobra.Command, []string) {}
@ -57,7 +73,7 @@ func init() {
RootCmd.PersistentFlags().StringVarP(&gmpath, "gm", "g", "./gm.json", "游戏区服配置") RootCmd.PersistentFlags().StringVarP(&gmpath, "gm", "g", "./gm.json", "游戏区服配置")
RootCmd.PersistentFlags().StringVarP(&crosspath, "cross", "c", "./cross.json", "游戏跨服配置") RootCmd.PersistentFlags().StringVarP(&crosspath, "cross", "c", "./cross.json", "游戏跨服配置")
RootCmd.PersistentFlags().StringVarP(&sid, "sid", "i", "", "区服id") RootCmd.PersistentFlags().StringVarP(&sid, "sid", "i", "", "区服id")
RootCmd.AddCommand(startCmd, stopCmd) RootCmd.AddCommand(confCmd, startCmd, stopCmd, restart)
} }
func main() { func main() {
@ -81,6 +97,26 @@ func Execute() {
} }
} }
//生成配置
func conf() {
if config, err := readergmconf(gmpath); err != nil {
log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err})
} else {
if ss, err := rederServiceSttings(config); err != nil {
log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err})
} else {
for _, v := range ss {
if sid == "" || fmt.Sprintf("%s_%s", v.Tag, sid) == v.Id {
if err = writeServiceConfig(fmt.Sprintf("./conf/%s.yaml", v.Id), v); err != nil {
log.Error("写入配置文件失败!", log.Field{Key: "err", Value: err})
return
}
}
}
}
}
}
//启动程序 //启动程序
func start() { func start() {
if config, err := readergmconf(gmpath); err != nil { if config, err := readergmconf(gmpath); err != nil {
@ -348,6 +384,9 @@ func stopService(sseting *core.ServiceSttings) (err error) {
//写入服务配置文件 //写入服务配置文件
func writeServiceConfig(filename string, sseting *core.ServiceSttings) (err error) { func writeServiceConfig(filename string, sseting *core.ServiceSttings) (err error) {
var data []byte var data []byte
if err = os.MkdirAll(filepath.Dir(filename), 0755); err != nil {
return
}
if data, err = yaml.Marshal(sseting); err != nil { if data, err = yaml.Marshal(sseting); err != nil {
return return
} else { } else {