Files
go-ts/cmd/tui/main.go
Jose Luis Montañes Ojados c0b1217536 feat: TeamSpeak TUI client with Bubble Tea
- Created TUI client in cmd/tui
- Implemented channel navigation and user display
- Fixed serverInfo initialization in ts3client
- Added real-time log panel in TUI
- Ordered channels by ID for stability
2026-01-16 14:41:26 +01:00

54 lines
1.1 KiB
Go

package main
import (
"flag"
"fmt"
"io"
"log"
"os"
tea "github.com/charmbracelet/bubbletea"
)
// debugLog writes to a debug file
var debugFile *os.File
func debugLog(format string, args ...any) {
if debugFile != nil {
fmt.Fprintf(debugFile, format+"\n", args...)
debugFile.Sync()
}
}
func main() {
serverAddr := flag.String("server", "127.0.0.1:9987", "TeamSpeak 3 Server Address")
nickname := flag.String("nickname", "TUI-User", "Your nickname")
debug := flag.Bool("debug", false, "Enable debug logging to tui-debug.log")
flag.Parse()
// Disable log output completely to prevent TUI corruption
log.SetOutput(io.Discard)
// Enable debug file logging if requested
if *debug {
var err error
debugFile, err = os.Create("tui-debug.log")
if err == nil {
defer debugFile.Close()
debugLog("TUI Debug started")
}
}
// Create the TUI model
m := NewModel(*serverAddr, *nickname)
// Create Bubble Tea program
p := tea.NewProgram(m, tea.WithAltScreen())
// Run
if _, err := p.Run(); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
}