package cmd import ( "context" "errors" _ "github.com/gogf/gf/contrib/drivers/mysql/v2" _ "github.com/gogf/gf/contrib/drivers/sqlite/v2" _ "github.com/gogf/gf/contrib/nosql/redis/v2" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gcmd" "github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/util/gmode" "git.5iot.com/iotlcm-public/iotlcm-openapi/internal/library/cache" "git.5iot.com/iotlcm-public/iotlcm-openapi/internal/library/rabbitmq" _ "git.5iot.com/iotlcm-public/iotlcm-openapi/internal/logic" "git.5iot.com/iotlcm-public/iotlcm-openapi/internal/router" ) var ( Main = gcmd.Command{ Name: "main", Usage: "main", Brief: "start http server", Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { if err = systemInit(ctx); err != nil { return err } defer func() { _ = rabbitmq.Close() }() s := g.Server() s.SetDumpRouterMap(true) router.InitRouter(ctx, s) s.Run() return nil }, } ) func systemInit(ctx context.Context) error { if err := g.DB().PingMaster(); err != nil { return errors.New("connect database failed") } setGFMode(ctx) if err := gtime.SetTimeZone("Asia/Shanghai"); err != nil { return err } cache.SetAdapter(ctx) return nil } func setGFMode(ctx context.Context) { gfmode := g.Cfg().MustGet(ctx, "system.gfmode").String() if gfmode == "" { gfmode = gmode.NOT_SET } for _, mode := range []string{gmode.DEVELOP, gmode.TESTING, gmode.STAGING, gmode.PRODUCT} { if mode == gfmode { gmode.Set(mode) return } } }