customer/cmd/app/main.go
2023-05-19 13:22:59 +03:00

44 lines
991 B
Go

package main
import (
"context"
"errors"
"log"
"os/signal"
"syscall"
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/app"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize"
)
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 {
logger.Fatal("failed to run app: %v",
zap.Error(err),
)
}
}