package main import ( "context" "time" "tm/cmd/scraper/bootstrap" ) func main() { // Load configuration config, err := bootstrap.InitConfig() if err != nil { panic(err) } // Initialize logger appLogger := bootstrap.InitLogger(config.Logging) appLogger.Info("Starting TED scraper application", map[string]interface{}{ "version": "1.0.0", }) // Initialize MongoDB connection mongoManager := bootstrap.InitMongoDB(config.Database.MongoDB, appLogger) defer func() { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() if err := mongoManager.Close(ctx); err != nil { appLogger.Error("Failed to close MongoDB connection", map[string]interface{}{ "error": err.Error(), }) } }() bootstrap.InitTEDScraper(*config, mongoManager, appLogger) appLogger.Info("TED scraper application stopped", map[string]interface{}{}) }