Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Make = gcmd.Command{ Name: "make", Usage: "make", Brief: "创建模块文件", Arguments: []gcmd.Argument{ {Name: "model", Short: "m", Brief: "模块名"}, {Name: "id", Short: "i", Brief: "活动id"}, {Name: "name", Short: "n", Brief: "服务文件名"}, }, Examples: "make -m=act -id=1: 创建活动1的接口与服务文件 \n" + "make -m=logic -n=test: 创建test的服务文件", Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { //g.Dump(parser.GetOptAll(), parser.GetArgAll()) //return var model = parser.GetOpt("model").String() this := cMake{} switch model { case "act": var id = parser.GetOpt("id").Int() if id == 0 { return } err = this.Act(id) case "logic": var name = parser.GetOpt("name").String() if name == "" { return } err = this.Logic(name) } return }, } )
View Source
var ( Update = gcmd.Command{ Name: "update", Usage: "update", Brief: "更新系统", Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { g.Log().Info(ctx, "准备上传更新文件") g.Cfg("hack").GetAdapter().(*gcfg.AdapterFile).SetFileName("hack/config.yaml") getFileName, err := g.Cfg("hack").Get(ctx, "gfcli.build.name") Filename := getFileName.String() var list []*serverCfg serverList := g.Cfg().MustGet(ctx, "server_list") serverList.Scan(&list) if parser.GetOpt("a").IsNil() { var temp []*serverCfg for _, v := range list { if v.Prod == false { temp = append(temp, v) } } list = temp } else { g.Dump("升级", parser.GetOpt("a")) } g.Dump("需要更新的服务器", list) //获取上传链接 var url = make(map[string]string) filename := "linux_amd64/" + Filename client := g.Client() client.SetTimeout(time.Minute) client.SetDiscovery(nil) for _, v := range list { address := v.Address if v.S3 == "" { v.S3 = "default" } if _, ok := url[v.S3]; !ok { url[v.S3], err = UploadS3(v.S3, filename) if err != nil { g.Log().Error(ctx, err) return } } g.Log().Debugf(ctx, "准备同步服务器:%v,url=%v", v.Name, address+"/callback/update") get, err := client.Post(ctx, address+"/callback/update", &UpdateReq{ FileUrl: url[v.S3], }) if err != nil { g.Log().Debugf(ctx, "切换代理进行上传:err=%v", err) get, err = client.Proxy("http://192.168.50.114:10808"). Post(ctx, address+"/callback/update", &UpdateReq{ FileUrl: url[v.S3], }) } if err != nil { g.Log().Error(ctx, err) } defer get.Close() g.Log().Debugf(ctx, "同步服务器:%v,完成=%v", v.Name, address) } return }, } )
Functions ¶
Types ¶
type UpdateReq ¶
type UpdateReq struct { File *ghttp.UploadFile `json:"file" binding:"required" dc:"文件"` FileUrl string `json:"file_url" dc:"文件地址"` }
Click to show internal directories.
Click to hide internal directories.