package main import ( "citrons.xyz/talk/tui" "citrons.xyz/talk/client/clipboard" "time" "fmt" "os" ) var globalApp *application func main() { go clipboard.DiscoverCommand() err := tui.Start() if err != nil { fmt.Fprintln(os.Stderr, "error initializing terminal: ", err) os.Exit(-1) } defer func() { tui.End() fmt.Println("bye!") }() globalApp = newApplication("alt.mondecitronne.com:27508") go globalApp.RunClient() defer globalApp.Stop() drawTick := time.Tick(time.Second / 60) redraw := true for { select { case m := <-globalApp.Messages(): m.Handle(globalApp) redraw = true case e := <-tui.Events(): globalApp.onInput(e) redraw = true case <-drawTick: if redraw { globalApp.show() redraw = false } case text := <-globalApp.activePaste: globalApp.onPaste(text) globalApp.activePaste = nil redraw = true } if globalApp.quit == true { return } } }