package main import ( "context" "log" "os" "time" "geoip-rest/internal/userprogram" ) const defaultTimeout = 30 * time.Minute func main() { logger := log.New(os.Stdout, "[sync] ", log.LstdFlags) dbURL := os.Getenv("DATABASE_URL") if dbURL == "" { logger.Fatal("DATABASE_URL is required") } mysqlCfg, err := userprogram.NewMySQLConfigFromEnv() if err != nil { logger.Fatalf("mysql config: %v", err) } paths, err := userprogram.NewPathsFromEnv() if err != nil { logger.Fatalf("paths config: %v", err) } ctx, cancel := context.WithTimeout(context.Background(), defaultTimeout) defer cancel() if err := userprogram.Sync(ctx, userprogram.SyncConfig{ MySQL: mysqlCfg, DatabaseURL: dbURL, InitialCSV: paths.InitialCSV, UpdateDir: paths.UpdateDir, LogDir: paths.LogDir, Schema: paths.Schema, Logger: logger, }); err != nil { logger.Fatalf("sync failed: %v", err) } }