2023-05-16 01:12:07 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2023-05-19 10:22:59 +00:00
|
|
|
"errors"
|
2023-05-17 20:27:09 +00:00
|
|
|
"log"
|
2023-05-16 01:12:07 +00:00
|
|
|
"os/signal"
|
|
|
|
"syscall"
|
|
|
|
|
2023-05-17 20:27:09 +00:00
|
|
|
"go.uber.org/zap"
|
2023-05-16 04:01:55 +00:00
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/app"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize"
|
2023-05-16 01:12:07 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
|
2023-05-19 09:08:15 +00:00
|
|
|
logger, err := zap.NewProduction(zap.AddStacktrace(zap.DPanicLevel))
|
2023-05-17 20:27:09 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Fatalf("failed to init zap logger: %v", err)
|
|
|
|
}
|
2023-05-16 01:12:07 +00:00
|
|
|
|
|
|
|
defer cancel()
|
2023-05-19 05:57:08 +00:00
|
|
|
defer func() {
|
|
|
|
if syncErr := logger.Sync(); syncErr != nil {
|
2023-05-19 10:22:59 +00:00
|
|
|
if !errors.Is(syncErr, syscall.EBADF) && !errors.Is(syncErr, syscall.ENOTTY) {
|
|
|
|
log.Fatalf("failed to sync zap logger: %v", syncErr)
|
|
|
|
}
|
2023-05-19 05:57:08 +00:00
|
|
|
}
|
|
|
|
}()
|
2023-05-16 01:12:07 +00:00
|
|
|
|
|
|
|
config, err := initialize.Configuration(".env.test")
|
|
|
|
if err != nil {
|
2023-05-17 20:27:09 +00:00
|
|
|
logger.Fatal("failed to init config: %v",
|
|
|
|
zap.Error(err),
|
|
|
|
)
|
2023-05-16 01:12:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if err := app.Run(ctx, config, logger); err != nil {
|
2023-05-17 20:27:09 +00:00
|
|
|
logger.Fatal("failed to run app: %v",
|
|
|
|
zap.Error(err),
|
|
|
|
)
|
2023-05-16 01:12:07 +00:00
|
|
|
}
|
|
|
|
}
|