package main

import (
	"context"
	"errors"
	"fmt"
	"log"
	"net/http"
	"os"
	"os/signal"

	"git.k-space.ee/k-space/logmower-shipper/pkg/watcher"
	"github.com/prometheus/client_golang/prometheus/promhttp"
)

func main() {
	go func() {
		metricsPort := 2112

		log.Printf("serving /metrics on port %d", metricsPort)

		http.Handle("/metrics", promhttp.Handler())

		if err := http.ListenAndServe(fmt.Sprintf(":%d", metricsPort), nil); !errors.Is(err, http.ErrServerClosed) {
			log.Fatalf("serving /metrics: %e", err)
		}
	}()

	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)

	if err := watcher.App.RunContext(ctx, os.Args); err != nil {
		log.Fatal(err)
	}
}
