From d3eea0013915794d37b63d6701412c88d18ba4c5 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sat, 18 May 2019 13:50:27 +1000 Subject: [PATCH] more progess --- pkg/gui/containers_panel.go | 13 ++++++++++++- pkg/gui/gui.go | 13 +++++++------ pkg/gui/keybindings.go | 5 +++++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/pkg/gui/containers_panel.go b/pkg/gui/containers_panel.go index 558acf16..bbe289aa 100644 --- a/pkg/gui/containers_panel.go +++ b/pkg/gui/containers_panel.go @@ -72,13 +72,24 @@ func (gui *Gui) handleContainerSelect(g *gocui.Gui, v *gocui.View, alreadySelect gui.State.MainWriterID++ writerID := gui.State.MainWriterID + mainView.Clear() mainView.SetOrigin(0, 0) mainView.SetCursor(0, 0) + + if err := gui.renderLogs(mainView, container, writerID); err != nil { + return err + } + + return nil +} + +func (gui *Gui) renderLogs(mainView *gocui.View, container *commands.Container, writerID int) error { + mainView.Autoscroll = true var cmd *exec.Cmd - cmd = gui.OSCommand.RunCustomCommand("docker logs --since=60m --timestamps " + container.ID) + cmd = gui.OSCommand.RunCustomCommand("docker logs --since=60m --timestamps --follow " + container.ID) cmd.Stdout = mainView cmd.Start() diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go index f0f5a257..9afaf592 100644 --- a/pkg/gui/gui.go +++ b/pkg/gui/gui.go @@ -143,11 +143,13 @@ func (gui *Gui) scrollDownMain(g *gocui.Gui, v *gocui.View) error { _, sy := mainView.Size() y += sy } - if y < len(mainView.BufferLines()) { - return mainView.SetOrigin(ox, oy+gui.Config.GetUserConfig().GetInt("gui.scrollHeight")) - } + // for some reason we can't work out whether we've hit the bottomq + // there is a large discrepancy in the origin's y value and the length of BufferLines + return mainView.SetOrigin(ox, oy+gui.Config.GetUserConfig().GetInt("gui.scrollHeight")) +} - mainView.Autoscroll = true +func (gui *Gui) autoScrollMain(g *gocui.Gui, v *gocui.View) error { + gui.getMainView().Autoscroll = true return nil } @@ -251,11 +253,10 @@ func (gui *Gui) layout(g *gocui.Gui) error { } usableSpace := height - 4 - extraSpace := usableSpace - (usableSpace/3)*3 vHeights := map[string]int{ "status": 3, - "containers": (usableSpace) + extraSpace, + "containers": usableSpace, "options": 1, } diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 282799b6..bd932b8d 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -94,6 +94,11 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Key: gocui.KeyCtrlD, Modifier: gocui.ModNone, Handler: gui.scrollDownMain, + }, { + ViewName: "", + Key: gocui.KeyEnd, + Modifier: gocui.ModNone, + Handler: gui.autoScrollMain, }, { ViewName: "", Key: 'x',