package cmd import ( "context" "os" "git.5iot.com/iotlcm-public/iotlcm-onelink-mock/internal/controller/gateway" "git.5iot.com/iotlcm-public/iotlcm-onelink-mock/internal/service" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gcmd" ) var Main = gcmd.Command{ Name: "main", Usage: "main", Brief: "start OneLink mock service", Func: func(ctx context.Context, parser *gcmd.Parser) error { var ( server = g.Server() runtimeLogCapacity = g.Cfg().MustGet(ctx, "runtimeLog.capacity", 500).Int() runtimeLogs = service.NewRuntimeLogStore(runtimeLogCapacity) databaseLink = g.Cfg().MustGet(ctx, "database.default.link", "sqlite::@file(data/onelink_mock.db)").String() ) if value := os.Getenv("BAFFLE_ADDR"); value != "" { server.SetAddr(value) } if value := os.Getenv("BAFFLE_SQLITE_PATH"); value != "" { databaseLink = value } g.Log().SetWriter(runtimeLogs) g.Log().SetWriterColorEnable(false) server.Logger().SetWriter(runtimeLogs) server.Logger().SetWriterColorEnable(false) mockService, err := service.NewService(databaseLink, runtimeLogs) if err != nil { return gerror.Wrap(err, "initialize mock service") } gateway.New(mockService).Register(server) g.Log().Infof(ctx, "OneLink mock service listening on %s", server.GetListenedAddress()) server.Run() return nil }, }