reddit-scrapper/cmd/reddit-scraper/main.go
2025-10-14 09:19:40 +07:00

36 lines
806 B
Go

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)
}