tercul-backend/cmd/tools/enrich/main.go
2025-09-05 21:37:42 +00:00

50 lines
1.3 KiB
Go

package main
import (
"context"
"tercul/internal/app"
"tercul/internal/jobs/linguistics"
"tercul/internal/platform/config"
log "tercul/internal/platform/log"
)
func main() {
log.LogInfo("Starting enrichment tool...")
// Load configuration from environment variables
config.LoadConfig()
// Initialize structured logger with appropriate log level
log.SetDefaultLevel(log.InfoLevel)
log.LogInfo("Starting Tercul enrichment tool",
log.F("environment", config.Cfg.Environment),
log.F("version", "1.0.0"))
// Build application components
appBuilder := app.NewApplicationBuilder()
if err := appBuilder.Build(); err != nil {
log.LogFatal("Failed to build application",
log.F("error", err))
}
defer appBuilder.Close()
// Get all works
works, err := appBuilder.GetApplication().WorkQueries.ListWorks(context.Background(), 1, 10000) // A bit of a hack, but should work for now
if err != nil {
log.LogFatal("Failed to get works",
log.F("error", err))
}
// Enqueue analysis for each work
for _, work := range works.Items {
err := linguistics.EnqueueAnalysisForWork(appBuilder.GetAsynq(), work.ID)
if err != nil {
log.LogError("Failed to enqueue analysis for work",
log.F("workID", work.ID),
log.F("error", err))
}
}
log.LogInfo("Enrichment tool finished.")
}