38 lines
788 B
Go
38 lines
788 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
tea "github.com/charmbracelet/bubbletea"
|
|
"skyrama-tui/internal/adminui"
|
|
"skyrama-tui/internal/db"
|
|
)
|
|
|
|
func main() {
|
|
dsn := flag.String("dsn", "",
|
|
"MySQL DSN. Overrides SKYRAMA_DSN env var.\n"+
|
|
" Format: user:pass@tcp(host:port)/dbname?parseTime=true")
|
|
flag.Parse()
|
|
|
|
if *dsn == "" {
|
|
*dsn = os.Getenv("SKYRAMA_DSN")
|
|
}
|
|
if *dsn == "" {
|
|
*dsn = "skyramaUser:Skyrama1234.@tcp(127.0.0.1:3306)/skyrama_clone?parseTime=true"
|
|
}
|
|
|
|
client, err := db.NewAdminClient(*dsn)
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "cannot connect to database: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
defer client.Close()
|
|
|
|
p := tea.NewProgram(adminui.NewApp(client), tea.WithAltScreen())
|
|
if _, err := p.Run(); err != nil {
|
|
log.Fatalf("fatal: %v", err)
|
|
}
|
|
}
|