Files
chorus/cmd/chorus-seed/main.go
T

46 lines
986 B
Go

package main
import (
"context"
"database/sql"
"fmt"
"log"
"os"
"strings"
"time"
"git.ilapage.cn/OPC/chorus/internal/seed"
_ "github.com/go-sql-driver/mysql"
)
func main() {
if err := run(); err != nil {
log.Printf("chorus seed failed: %v", err)
os.Exit(1)
}
log.Print("chorus seed completed")
}
func run() error {
dsn := strings.TrimSpace(os.Getenv("CHORUS_DSN"))
if dsn == "" {
return fmt.Errorf("CHORUS_DSN is required")
}
db, err := sql.Open("mysql", dsn)
if err != nil {
return fmt.Errorf("open seed database: %w", err)
}
defer db.Close()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
if err := db.PingContext(ctx); err != nil {
return fmt.Errorf("connect to seed database")
}
return seed.Run(ctx, db, seed.Options{
UserEmail: os.Getenv("CHORUS_SEED_USER_EMAIL"),
UserPassword: os.Getenv("CHORUS_SEED_USER_PASSWORD"),
ProviderBaseURL: os.Getenv("CHORUS_SEED_PROVIDER_BASE_URL"),
})
}