package main

import (
	"context"
	"os"
	"os/signal"
	"syscall"

	"bit.admedia.com/scm/ad/adpilot-indexing-repo-sync.com/internal/app"
	"bit.admedia.com/scm/ad/adpilot-indexing-repo-sync.com/internal/telemetry"
)

const serviceName = "repo-sync-service"

func main() {
	bootstrap := telemetry.NewLogger(telemetry.LoggerConfig{
		ServiceName: serviceName,
		Level:       os.Getenv("LOG_LEVEL"),
		LogFile:     os.Getenv("LOG_FILE"),
	})

	application, err := app.New()
	if err != nil {
		telemetry.RecordError(bootstrap, err, "failed to initialize app")
		os.Exit(1)
	}

	ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
	defer stop()

	if err := application.Run(ctx); err != nil {
		telemetry.RecordError(bootstrap, err, "service stopped with error")
		os.Exit(1)
	}
}
