diff --git a/pkg/gui/containers_panel.go b/pkg/gui/containers_panel.go index c50e1985..ae8d719e 100644 --- a/pkg/gui/containers_panel.go +++ b/pkg/gui/containers_panel.go @@ -523,6 +523,11 @@ func (gui *Gui) handleContainersExecShell(g *gocui.Gui, v *gocui.View) error { if err != nil { return nil } + + return gui.containerExecShell(container) +} + +func (gui *Gui) containerExecShell(container *commands.Container) error { commandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{ Container: container, }) diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 54cab25f..81e6939a 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -367,6 +367,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Handler: gui.handleServicesBulkCommand, Description: gui.Tr.ViewBulkCommands, }, + { + ViewName: "services", + Key: 'E', + Modifier: gocui.ModNone, + Handler: gui.handleServicesExecShell, + Description: gui.Tr.ExecShell, + }, { ViewName: "services", Key: 'w', diff --git a/pkg/gui/services_panel.go b/pkg/gui/services_panel.go index b308bb93..7a9cbb44 100644 --- a/pkg/gui/services_panel.go +++ b/pkg/gui/services_panel.go @@ -442,6 +442,20 @@ func (gui *Gui) handleServicesBulkCommand(g *gocui.Gui, v *gocui.View) error { return gui.createBulkCommandMenu(bulkCommands, commandObject) } +func (gui *Gui) handleServicesExecShell(g *gocui.Gui, v *gocui.View) error { + service, err := gui.getSelectedService() + if err != nil { + return nil + } + + container := service.Container + if container == nil { + return gui.createErrorPanel(gui.g, gui.Tr.NoContainers) + } + + return gui.containerExecShell(container) +} + func (gui *Gui) handleServicesOpenInBrowserCommand(g *gocui.Gui, v *gocui.View) error { service, err := gui.getSelectedService() if err != nil {