From: Jeff Halter Date: Sun, 25 Jul 2021 17:26:59 +0000 (-0700) Subject: Minor cleanup X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/commitdiff_plain/12ace83fb129e2e37b97def6b5daf893f49d7418 Minor cleanup --- diff --git a/client.go b/client.go index de28443..11f4232 100644 --- a/client.go +++ b/client.go @@ -435,8 +435,6 @@ func (ui *UI) Start() { ui.Pages.AddAndSwitchToPage("trackerList", ui.trackerList, true) }). AddItem("Settings", "", 's', func() { - //ui.Pages.AddPage("settings", ui.renderSettingsForm(), true, false) - ui.Pages.AddPage("settings", ui.renderSettingsForm(), true, true) }). AddItem("Quit", "", 'q', func() { @@ -454,12 +452,10 @@ func (ui *UI) Start() { } // Show Logs if event.Key() == tcell.KeyCtrlL { - //curPage, _ := ui.Pages.GetFrontPage() ui.HLClient.DebugBuf.TextView.ScrollToEnd() ui.HLClient.DebugBuf.TextView.SetBorder(true).SetTitle("Logs") ui.HLClient.DebugBuf.TextView.SetDoneFunc(func(key tcell.Key) { if key == tcell.KeyEscape { - //ui.Pages.SwitchToPage("serverUI") ui.Pages.RemovePage("logs") } }) @@ -470,7 +466,8 @@ func (ui *UI) Start() { }) if err := ui.App.SetRoot(ui.Pages, true).SetFocus(ui.Pages).Run(); err != nil { - panic(err) + ui.App.Stop() + os.Exit(1) } } diff --git a/client/main.go b/client/main.go index a761404..6008cad 100644 --- a/client/main.go +++ b/client/main.go @@ -8,18 +8,12 @@ import ( "github.com/rivo/tview" "go.uber.org/zap" "go.uber.org/zap/zapcore" + "log" "os" "os/signal" "syscall" - "time" ) -//var defaultTrackerList = []string{ -// "hltracker.com:5498", -//} - -const connectTimeout = 3 * time.Second - func main() { _, cancelRoot := context.WithCancel(context.Background()) @@ -28,10 +22,8 @@ func main() { version := flag.Bool("version", false, "print version and exit") logLevel := flag.String("log-level", "info", "Log level") - userName := flag.String("name", "unnamed", "User name") - //srvAddr := flag.String("server", "localhost:5500", "Hostname/Port of server") - //login := flag.String("login", "guest", "Login Name") - //pass := flag.String("password", "", "Login Password") + logFile := flag.String("log-file", "", "output logs to file") + flag.Parse() if *version { @@ -50,10 +42,22 @@ func main() { TextView: tview.NewTextView(), } - cores := []zapcore.Core{ - newDebugCore(zapLvl, db), - //newStderrCore(zapLvl), + cores := []zapcore.Core{newZapCore(zapLvl, db)} + + // Add file logger if optional log-file flag was passed + if *logFile != "" { + f, err := os.OpenFile(*logFile, + os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + log.Println(err) + } + defer f.Close() + if err != nil { + panic(err) + } + cores = append(cores, newZapCore(zapLvl, f)) } + l := zap.New(zapcore.NewTee(cores...)) defer func() { _ = l.Sync() }() logger := l.Sugar() @@ -65,32 +69,20 @@ func main() { cancelRoot() }() - client := hotline.NewClient(*userName, logger) + client := hotline.NewClient("", logger) client.DebugBuf = db client.UI.Start() } -func newDebugCore(level zapcore.Level, db *hotline.DebugBuffer) zapcore.Core { - encoderCfg := zap.NewProductionEncoderConfig() - encoderCfg.TimeKey = "timestamp" - encoderCfg.EncodeTime = zapcore.ISO8601TimeEncoder - - return zapcore.NewCore( - zapcore.NewConsoleEncoder(encoderCfg), - zapcore.Lock(db), - level, - ) -} - -func newStderrCore(level zapcore.Level) zapcore.Core { +func newZapCore(level zapcore.Level, syncer zapcore.WriteSyncer) zapcore.Core { encoderCfg := zap.NewProductionEncoderConfig() encoderCfg.TimeKey = "timestamp" encoderCfg.EncodeTime = zapcore.ISO8601TimeEncoder return zapcore.NewCore( zapcore.NewConsoleEncoder(encoderCfg), - zapcore.Lock(os.Stderr), + zapcore.Lock(syncer), level, ) }