上传cmd flag 外部参数绑定

This commit is contained in:
liwei1dao 2022-09-21 20:59:40 +08:00
parent 01f309da8f
commit 9d91d35501

View File

@ -24,9 +24,9 @@ import (
服务描述:通过读取游戏json配置,启动服务程序 服务描述:通过读取游戏json配置,启动服务程序
*/ */
var ( var (
gmpath = flag.String("g", "./gm.json", "游戏区服配置") //服务列表下标 gmpath string //服务列表下标
crosspath = flag.String("c", "./cross.json", "游戏跨服配置") //服务列表下标 crosspath string //服务列表下标
sid = flag.String("i", "", "曲阜列表下标") //服务列表下标 sid string //服务列表下标
) )
var startCmd = &cobra.Command{ var startCmd = &cobra.Command{
Use: "start", Use: "start",
@ -54,6 +54,9 @@ var RootCmd = &cobra.Command{
//初始化自定义cmd //初始化自定义cmd
func init() { func init() {
RootCmd.PersistentFlags().StringVarP(&gmpath, "gm", "g", "./gm.json", "游戏区服配置")
RootCmd.PersistentFlags().StringVarP(&crosspath, "cross", "c", "./cross.json", "游戏跨服配置")
RootCmd.PersistentFlags().StringVarP(&sid, "sid", "i", "", "区服id")
RootCmd.AddCommand(startCmd, stopCmd) RootCmd.AddCommand(startCmd, stopCmd)
} }
@ -80,7 +83,7 @@ func Execute() {
//启动程序 //启动程序
func start() { func start() {
if config, err := readergmconf(*gmpath); err != nil { if config, err := readergmconf(gmpath); err != nil {
log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err}) log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err})
} else { } else {
var ( var (
@ -92,7 +95,7 @@ func start() {
log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err}) log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err})
} else { } else {
for _, v := range ss { for _, v := range ss {
if *sid == "" || fmt.Sprintf("%s_%s", v.Tag, *sid) == v.Id { if sid == "" || fmt.Sprintf("%s_%s", v.Tag, sid) == v.Id {
if err = writeServiceConfig(fmt.Sprintf("./conf/%s.yaml", v.Id), v); err != nil { if err = writeServiceConfig(fmt.Sprintf("./conf/%s.yaml", v.Id), v); err != nil {
log.Error("写入配置文件失败!", log.Field{Key: "err", Value: err}) log.Error("写入配置文件失败!", log.Field{Key: "err", Value: err})
return return
@ -144,7 +147,7 @@ func start() {
//关闭程序 //关闭程序
func stop() { func stop() {
if config, err := readergmconf(*gmpath); err != nil { if config, err := readergmconf(gmpath); err != nil {
log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err}) log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err})
} else { } else {
@ -152,7 +155,7 @@ func stop() {
log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err}) log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err})
} else { } else {
for _, v := range ss { for _, v := range ss {
if *sid == "" || fmt.Sprintf("%s_%s", v.Tag, *sid) == v.Id { if sid == "" || fmt.Sprintf("%s_%s", v.Tag, sid) == v.Id {
stopService(v) stopService(v)
} }
} }
@ -276,7 +279,7 @@ func convertServiceSttings(config *comm.GameConfig, id int, stype string, ip str
"RedisDB": config.LoaclDB.RedisDB, "RedisDB": config.LoaclDB.RedisDB,
"MongodbUrl": config.LoaclDB.MongodbUrl, "MongodbUrl": config.LoaclDB.MongodbUrl,
"MongodbDatabase": config.LoaclDB.MongodbDatabase, "MongodbDatabase": config.LoaclDB.MongodbDatabase,
"CrossConfig": *crosspath, "CrossConfig": crosspath,
} }
return return
} }