Files
horse/horsegen/main.go

67 lines
1.3 KiB
Go

package main
import (
"context"
"flag"
"fmt"
"os"
"os/signal"
"path/filepath"
"zombiezen.com/go/sqlite"
"zombiezen.com/go/sqlite/sqlitex"
)
func main() {
var (
mdb string
out string
)
flag.StringVar(&mdb, "mdb", os.ExpandEnv(`$USERPROFILE\AppData\LocalLow\Cygames\Umamusume\master\master.mdb`), "`path` to Umamusume master.mdb")
flag.StringVar(&out, "kk", `.\horse`, "existing `dir`ectory for output Koka files")
flag.Parse()
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
go func() {
<-ctx.Done()
stop()
}()
t, err := LoadTemplates()
if err != nil {
fmt.Fprintf(os.Stderr, "loading templates: %s\n", err)
os.Exit(2)
}
db, err := sqlitex.NewPool(mdb, sqlitex.PoolOptions{Flags: sqlite.OpenReadOnly})
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
charas, err := Characters(ctx, db)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
pairs, err := CharacterPairs(ctx, db)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
trios, err := CharacterTrios(ctx, db)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
cf, err := os.Create(filepath.Join(out, "character.kk"))
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
if err := ExecCharacterKK(t, cf, charas, pairs, trios); err != nil {
fmt.Fprintln(os.Stderr, err)
// continue on
}
}