46 lines
933 B
Go
46 lines
933 B
Go
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)
|
|
}
|
|
}
|