package main import ( "context" "github.com/davidbyttow/govips/v2/vips" log "github.com/sirupsen/logrus" "imageStorage/config" "imageStorage/internal/app" "imageStorage/internal/convert" "imageStorage/internal/httpDelivery" "imageStorage/internal/mainHandler" "imageStorage/internal/router" "imageStorage/internal/utils" "os" "os/signal" "syscall" ) func main() { c := config.NewConfig() //c := config.DevConfig() config.LogSetup(c.App.LogLevel) log.Infof("Log level: %s", c.App.LogLevel) vips.Startup(&vips.Config{ MaxCacheMem: 100 << 20, }) defer vips.Shutdown() ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer cancel() u := utils.NewHandler(c.App.Domain, c.App.Volume) r := router.SetRouter("debug") mainRoute := r.Group("/") delivery := httpDelivery.NewHandler(u) delivery.RegisterRoutes(mainRoute) converter := convert.NewHandler() imageServerHandler := mainHandler.NewHandler(mainHandler.Deps{ Converter: converter, Volume: c.App.Volume, Utils: u, }) a := app.NewApp(app.Deps{ Config: c, GrpcServer: imageServerHandler, HttpServer: r, }) if err := a.Start(ctx); err != nil { log.Fatal(err) } }