diff --git a/cmd/app/main.go b/cmd/app/main.go index f10bafe..872956c 100644 --- a/cmd/app/main.go +++ b/cmd/app/main.go @@ -1,11 +1,7 @@ package main import ( - "context" - "errors" "log" - "os/signal" - "syscall" "go.uber.org/zap" "penahub.gitlab.yandexcloud.net/external/treasurer/internal/app" @@ -13,27 +9,17 @@ import ( ) func main() { - ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) logger, err := zap.NewProduction(zap.AddStacktrace(zap.DPanicLevel)) if err != nil { log.Fatalf("failed to init zap logger: %v", err) } - defer cancel() - defer func() { - if syncErr := logger.Sync(); syncErr != nil { - if !errors.Is(syncErr, syscall.EBADF) && !errors.Is(syncErr, syscall.ENOTTY) { - log.Fatalf("failed to sync zap logger: %v", syncErr) - } - } - }() - config, err := initialize.Configuration(".env.test") if err != nil { logger.Fatal("failed to init config: %v", zap.Error(err)) } - if err := app.Run(ctx, config, logger); err != nil { + if err := app.Run(config, logger); err != nil { logger.Fatal("failed to run app: %v", zap.Error(err)) } } diff --git a/internal/app/app.go b/internal/app/app.go index f2d5bb8..caa6601 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -4,6 +4,8 @@ import ( "context" "errors" "fmt" + "os/signal" + "syscall" "time" "go.uber.org/zap" @@ -20,7 +22,7 @@ const ( shutdownTimeout = 5 * time.Second ) -func Run(ctx context.Context, config *models.Config, logger *zap.Logger) (appErr error) { +func Run(config *models.Config, logger *zap.Logger) (appErr error) { defer func() { if recovered := recover(); recovered != nil { appErr = errors.New("recovered panic on application run") @@ -28,6 +30,9 @@ func Run(ctx context.Context, config *models.Config, logger *zap.Logger) (appErr } }() + ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) + defer cancel() + mongoDB, connectionErr := mongo.Connect(ctx, &mongo.ConnectDeps{ Configuration: &config.Database, Timeout: 10 * time.Second,