46 lines
986 B
Go
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"),
|
|
})
|
|
}
|