From 83970c305fbd131caaaa515d98e4a7258f080fb1 Mon Sep 17 00:00:00 2001 From: xuewenG Date: Thu, 23 Jan 2025 23:55:29 +0800 Subject: [PATCH] feat: remove main_prod.go --- backend/init_static_files_prod.go | 13 ++++ backend/main.go | 21 ++++++- backend/main_prod.go | 101 ------------------------------ 3 files changed, 32 insertions(+), 103 deletions(-) create mode 100644 backend/init_static_files_prod.go delete mode 100644 backend/main_prod.go diff --git a/backend/init_static_files_prod.go b/backend/init_static_files_prod.go new file mode 100644 index 0000000..e5e498f --- /dev/null +++ b/backend/init_static_files_prod.go @@ -0,0 +1,13 @@ +//go:build prod +package main + +import ( + "embed" +) + +//go:embed public/* +var embedPublicFiles embed.FS + +func init() { + staticFiles = &embedPublicFiles +} diff --git a/backend/main.go b/backend/main.go index 8be777b..34d9b76 100644 --- a/backend/main.go +++ b/backend/main.go @@ -1,9 +1,10 @@ -//go:build !prod - package main import ( + "embed" "fmt" + "net/http" + "strings" "github.com/ilyakaznacheev/cleanenv" _ "github.com/joho/godotenv/autoload" @@ -14,6 +15,7 @@ import ( myMiddleware "github.com/kingwrcy/moments/middleware" "github.com/kingwrcy/moments/vo" "github.com/labstack/echo/v4" + "github.com/labstack/echo/v4/middleware" "github.com/rs/zerolog" "github.com/samber/do/v2" _ "github.com/swaggo/echo-swagger" @@ -23,6 +25,8 @@ import ( var version string var commitId string +var staticFiles *embed.FS + func newEchoEngine(_ do.Injector) (*echo.Echo, error) { e := echo.New() return e, nil @@ -71,6 +75,19 @@ func main() { setupRouter(injector) + if staticFiles != nil { + e.Use(middleware.StaticWithConfig(middleware.StaticConfig{ + Root: "public", + HTML5: true, + IgnoreBase: false, + Browse: false, + Filesystem: http.FS(staticFiles), + Skipper: func(c echo.Context) bool { + return strings.HasPrefix(c.Request().URL.Path, "/swagger/") + }, + })) + } + migrateTo3(tx, myLogger) e.HideBanner = true diff --git a/backend/main_prod.go b/backend/main_prod.go deleted file mode 100644 index dc9f5cb..0000000 --- a/backend/main_prod.go +++ /dev/null @@ -1,101 +0,0 @@ -//go:build prod - -package main - -import ( - "embed" - "fmt" - "net/http" - "strings" - - "github.com/ilyakaznacheev/cleanenv" - _ "github.com/joho/godotenv/autoload" - "github.com/kingwrcy/moments/db" - _ "github.com/kingwrcy/moments/docs" - "github.com/kingwrcy/moments/handler" - "github.com/kingwrcy/moments/log" - myMiddleware "github.com/kingwrcy/moments/middleware" - "github.com/kingwrcy/moments/vo" - "github.com/labstack/echo/v4" - "github.com/labstack/echo/v4/middleware" - "github.com/rs/zerolog" - "github.com/samber/do/v2" - _ "github.com/swaggo/echo-swagger" - "gorm.io/gorm" -) - -var version string -var commitId string - -//go:embed public/* -var staticFiles embed.FS - -func newEchoEngine(_ do.Injector) (*echo.Echo, error) { - e := echo.New() - return e, nil -} - -// @title Moments API -// @version 0.2.1 -func main() { - injector := do.New() - var cfg vo.AppConfig - - err := cleanenv.ReadEnv(&cfg) - if err != nil { - fmt.Printf("读取配置文件异常:%s", err) - return - } - - if version == "" { - version = "unknown" - } - - if commitId == "" { - commitId = "unknown" - } - - do.ProvideValue(injector, &cfg) - do.Provide(injector, log.NewLogger) - - myLogger := do.MustInvoke[zerolog.Logger](injector) - - myLogger.Info().Msgf("version = %s", version) - myLogger.Info().Msgf("commitId = %s", commitId) - - handleEmptyConfig(myLogger, &cfg) - cfg.Version = version - cfg.CommitId = commitId - - do.Provide(injector, db.NewDB) - do.Provide(injector, newEchoEngine) - do.Provide(injector, handler.NewBaseHandler) - - tx := do.MustInvoke[*gorm.DB](injector) - - e := do.MustInvoke[*echo.Echo](injector) - e.Use(myMiddleware.Auth(injector)) - - setupRouter(injector) - - e.Use(middleware.StaticWithConfig(middleware.StaticConfig{ - Root: "public", - HTML5: true, - IgnoreBase: false, - Browse: false, - Filesystem: http.FS(staticFiles), - Skipper: func(c echo.Context) bool { - return strings.HasPrefix(c.Request().URL.Path, "/swagger/") - }, - })) - - migrateTo3(tx, myLogger) - - e.HideBanner = true - err = e.Start(fmt.Sprintf(":%d", cfg.Port)) - if err == nil { - myLogger.Info().Msgf("服务端启动成功,监听:%d端口...", cfg.Port) - } else { - myLogger.Fatal().Msgf("服务启动失败,错误原因:%s", err) - } -}