Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ConfigFiles embed.FS
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 -i 1: 创建活动1的接口与服务文件 \n" + "make -m logic -n test: 创建test的服务文件 \n" + "make -m config -n test: 创建配置文件 \n" + "make -m socket -n test: 创建socket文件 \n", 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) case "config": var name = parser.GetOpt("name").String() if name == "" { return } err = this.Config(name) case "socket": var name = parser.GetOpt("name").String() if name == "" { return } err = this.Socket(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() getVersion, err := g.Cfg("hack").Get(ctx, "gfcli.build.version") Version := getVersion.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) var system = make(map[string]string) client := g.Client() client.SetTimeout(time.Minute) client.SetDiscovery(nil) for _, v := range list { address := v.Address if v.S3 == "" { v.S3 = "default" } _, ok2 := system[v.System+v.Arch] if _, ok := url[v.S3]; !ok || !ok2 { var systemName = "linux_amd64" if v.Arch != "" && v.System != "" { systemName = v.System + "_" + v.Arch } var filename = path.Join(Version, systemName, Filename) g.Log().Debugf(ctx, "当前上传文件:"+filename) url[v.S3], err = UploadS3(v.S3, filename) if err != nil { g.Log().Error(ctx, err) return } system[v.System+v.Arch] = 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 ¶
func MiddlewareAdmin ¶ added in v1.1.5
func RegistrationAnonymous ¶ added in v1.1.23
func RegistrationAnonymous(group *ghttp.RouterGroup) (res []interface{})
注册游客方法
func RegistrationUser ¶ added in v1.1.23
func RegistrationUser(group *ghttp.RouterGroup) (res []interface{})
注册用户方法
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.