package main import ( "context" "fmt" "os" "os/signal" "syscall" "github.com/yourname/reddit-scraper/internal/config" "github.com/yourname/reddit-scraper/internal/controller" "github.com/yourname/reddit-scraper/internal/logging" ) func main() { cfg, err := config.Load() if err != nil { fmt.Fprintln(os.Stderr, "config load:", err) os.Exit(2) } logger := logging.Init(cfg.LogLevel) logger.Info("starting", "keyword", cfg.Keyword, "limit", cfg.Limit, "concurrency", cfg.Concurrency) ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer cancel() ctrl := controller.New(cfg, logger) summary, err := ctrl.Run(ctx) if err != nil { logger.Error("run failed", "err", err) os.Exit(1) } logger.Info("run complete", "summary", summary) }