package main

// seedctl: one-off local runner for seed.sql (no psql/docker on this host).
import (
	"context"
	"fmt"
	"os"

	"github.com/jackc/pgx/v5"
)

func main() {
	ctx := context.Background()
	conn, err := pgx.Connect(ctx, os.Getenv("DATABASE_URL"))
	if err != nil {
		panic(err)
	}
	defer conn.Close(ctx)
	if os.Args[1] == "-q" { // verify mode
		rows, err := conn.Query(ctx, os.Args[2])
		if err != nil {
			panic(err)
		}
		defer rows.RawValues() //nolint
		flds := rows.FieldDescriptions()
		for rows.Next() {
			vals := rows.RawValues()
			for i, v := range vals {
				fmt.Printf("%s=%s ", flds[i].Name, v)
			}
			fmt.Println()
		}
		return
	}
	b, err := os.ReadFile(os.Args[1])
	if err != nil {
		panic(err)
	}
	if _, err := conn.Exec(ctx, string(b)); err != nil {
		panic(err)
	}
	fmt.Println("seed applied:", os.Args[1])
}
