上传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配置,启动服务程序
*/
var (
gmpath = flag.String("g", "./gm.json", "游戏区服配置") //服务列表下标
crosspath = flag.String("c", "./cross.json", "游戏跨服配置") //服务列表下标
sid = flag.String("i", "", "曲阜列表下标") //服务列表下标
gmpath string //服务列表下标
crosspath string //服务列表下标
sid string //服务列表下标
)
var startCmd = &cobra.Command{
Use: "start",
@ -54,6 +54,9 @@ var RootCmd = &cobra.Command{
//初始化自定义cmd
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)
}
@ -80,7 +83,7 @@ func Execute() {
//启动程序
func start() {
if config, err := readergmconf(*gmpath); err != nil {
if config, err := readergmconf(gmpath); err != nil {
log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err})
} else {
var (
@ -92,7 +95,7 @@ func start() {
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 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
@ -144,7 +147,7 @@ func start() {
//关闭程序
func stop() {
if config, err := readergmconf(*gmpath); err != nil {
if config, err := readergmconf(gmpath); err != nil {
log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err})
} else {
@ -152,7 +155,7 @@ func stop() {
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 sid == "" || fmt.Sprintf("%s_%s", v.Tag, sid) == v.Id {
stopService(v)
}
}
@ -276,7 +279,7 @@ func convertServiceSttings(config *comm.GameConfig, id int, stype string, ip str
"RedisDB": config.LoaclDB.RedisDB,
"MongodbUrl": config.LoaclDB.MongodbUrl,
"MongodbDatabase": config.LoaclDB.MongodbDatabase,
"CrossConfig": *crosspath,
"CrossConfig": crosspath,
}
return
}