47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
logger "git.site.quack-lab.dev/dave/cylogger"
|
|
utils "git.site.quack-lab.dev/dave/cyutils"
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
logger.InitFlag()
|
|
db, err := GetDB()
|
|
if err != nil {
|
|
logger.Error("Failed to get database: %v", err)
|
|
return
|
|
}
|
|
db.DB().AutoMigrate(&Killmail{}, &Attacker{}, &Victim{}, &Item{}, &Position{})
|
|
|
|
killmailFiles, err := os.ReadDir("data")
|
|
if err != nil {
|
|
logger.Error("Failed to read data directory: %v", err)
|
|
return
|
|
}
|
|
utils.WithWorkers(4, killmailFiles, func(worker int, _ int, file os.DirEntry) {
|
|
flog := logger.Default.WithPrefix(fmt.Sprintf("worker %d", worker)).WithPrefix(file.Name())
|
|
flog.Info("Loading killmails")
|
|
|
|
killmails, err := LoadBz2Killmails(filepath.Join("data", file.Name()))
|
|
if err != nil {
|
|
flog.Error("Failed to load killmails: %v", err)
|
|
return
|
|
}
|
|
flog.Info("Loaded %d killmails", len(killmails))
|
|
|
|
err = db.SaveKillmails(killmails)
|
|
if err != nil {
|
|
flog.Error("Failed to save killmails: %v", err)
|
|
return
|
|
}
|
|
flog.Info("Saved %d killmails", len(killmails))
|
|
})
|
|
}
|