"fmt"
"io"
"log"
+ "log/slog"
"net"
"os"
"os/exec"
seen := time.Now()
LoggerReady := make(chan struct{})
- GUI, err = gocui.NewGui(gocui.OutputNormal)
- if err != nil {
- log.Fatal(err)
- }
- defer GUI.Close()
- GUI.SelFgColor = gocui.ColorCyan
- GUI.Highlight = true
- GUI.SetManagerFunc(guiLayout)
- if err = GUI.SetKeybinding("", gocui.KeyTab, gocui.ModNone, tabHandle); err != nil {
- log.Fatal(err)
- }
- if err = GUI.SetKeybinding("", gocui.KeyF1, gocui.ModNone,
- func(gui *gocui.Gui, v *gocui.View) error {
- muteToggle()
- return nil
- },
- ); err != nil {
- log.Fatal(err)
- }
- if err = GUI.SetKeybinding("", gocui.KeyF10, gocui.ModNone,
- func(gui *gocui.Gui, v *gocui.View) error {
- Finish <- struct{}{}
- return gocui.ErrQuit
- },
- ); err != nil {
- log.Fatal(err)
- }
-
- go func() {
- <-GUIReadyC
- v, errView := GUI.View("logs")
- if errView != nil {
- log.Fatal(errView)
- }
- log.SetOutput(v)
+ if *NoGUI {
+ close(GUIReadyC)
+ slog.SetDefault(slog.New(slog.NewTextHandler(os.Stderr, nil)))
log.Println("connected", "sid:", sidConnected,
"addr:", conn.LocalAddr().String())
close(LoggerReady)
- for {
- time.Sleep(vors.ScreenRefresh)
- GUI.Update(func(gui *gocui.Gui) error {
+ } else {
+ GUI, err = gocui.NewGui(gocui.OutputNormal)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer GUI.Close()
+ GUI.SelFgColor = gocui.ColorCyan
+ GUI.Highlight = true
+ GUI.SetManagerFunc(guiLayout)
+ if err = GUI.SetKeybinding("", gocui.KeyTab, gocui.ModNone, tabHandle); err != nil {
+ log.Fatal(err)
+ }
+ if err = GUI.SetKeybinding("", gocui.KeyF1, gocui.ModNone,
+ func(gui *gocui.Gui, v *gocui.View) error {
+ muteToggle()
return nil
- })
+ },
+ ); err != nil {
+ log.Fatal(err)
}
- }()
+ if err = GUI.SetKeybinding("", gocui.KeyF10, gocui.ModNone,
+ func(gui *gocui.Gui, v *gocui.View) error {
+ Finish <- struct{}{}
+ return gocui.ErrQuit
+ },
+ ); err != nil {
+ log.Fatal(err)
+ }
+ go func() {
+ <-GUIReadyC
+ v, errView := GUI.View("logs")
+ if errView != nil {
+ log.Fatal(errView)
+ }
+ log.SetOutput(v)
+ log.Println("connected", "sid:", sidConnected,
+ "addr:", conn.LocalAddr().String())
+ close(LoggerReady)
+ for {
+ time.Sleep(vors.ScreenRefresh)
+ GUI.Update(func(gui *gocui.Gui) error {
+ return nil
+ })
+ }
+ }()
+ }
go func() {
<-Finish
- go GUI.Close()
- time.Sleep(100 * time.Millisecond)
+ if !*NoGUI {
+ go GUI.Close()
+ time.Sleep(100 * time.Millisecond)
+ }
os.Exit(0)
}()
close(playerTx)
}
}()
- go statsDrawer(stream)
+ if !*NoGUI {
+ go statsDrawer(stream)
+ }
StreamsM.Lock()
Streams[sid] = stream
StreamsM.Unlock()
}
}()
- go statsDrawer(&Stream{name: *Name, stats: OurStats})
+ if !*NoGUI {
+ go statsDrawer(&Stream{name: *Name, stats: OurStats})
+ }
go func() {
<-LoggerReady
for now := range time.NewTicker(time.Second).C {
}
}()
- err = GUI.MainLoop()
- if err != nil && err != gocui.ErrQuit {
- log.Fatal(err)
+ if !*NoGUI {
+ err = GUI.MainLoop()
+ if err != nil && err != gocui.ErrQuit {
+ log.Fatal(err)
+ }
}
}