Merge pull request #247 from stokito/exec_shell

Exec shell: separate menu item and auto detect shell: bash or sh
pull/265/head v0.11
Mark Kopenga 3 years ago committed by GitHub
commit fb6b73bf5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -47,7 +47,7 @@ customCommands:
containers: containers:
- name: bash - name: bash
attach: true attach: true
command: docker exec -it {{ .Container.ID }} /bin/sh command: "docker exec -it {{ .Container.ID }} /bin/sh -c 'eval $(grep ^$(id -un): /etc/passwd | cut -d : -f 7-)'"
serviceNames: [] serviceNames: []
oS: oS:
openCommand: open {{filename}} openCommand: open {{filename}}

@ -344,7 +344,7 @@ func GetDefaultConfig() UserConfig {
Containers: []CustomCommand{ Containers: []CustomCommand{
{ {
Name: "bash", Name: "bash",
Command: "docker exec -it {{ .Container.ID }} /bin/sh", Command: "docker exec -it {{ .Container.ID }} /bin/sh -c 'eval $(grep ^$(id -un): /etc/passwd | cut -d : -f 7-)'",
Attach: true, Attach: true,
}, },
}, },

@ -509,6 +509,21 @@ func (gui *Gui) handleContainerViewLogs(g *gocui.Gui, v *gocui.View) error {
return gui.Errors.ErrSubProcess return gui.Errors.ErrSubProcess
} }
func (gui *Gui) handleContainersExecShell(g *gocui.Gui, v *gocui.View) error {
container, err := gui.getSelectedContainer()
if err != nil {
return nil
}
commandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{
Container: container,
})
resolvedCommand := utils.ApplyTemplate("docker exec -it {{ .Container.ID }} /bin/sh -c 'eval $(grep ^$(id -un): /etc/passwd | cut -d : -f 7-)'", commandObject)
// attach and return the subprocess error
cmd := gui.OSCommand.ExecutableFromString(resolvedCommand)
gui.SubProcess = cmd
return gui.Errors.ErrSubProcess
}
func (gui *Gui) handleContainersCustomCommand(g *gocui.Gui, v *gocui.View) error { func (gui *Gui) handleContainersCustomCommand(g *gocui.Gui, v *gocui.View) error {
container, err := gui.getSelectedContainer() container, err := gui.getSelectedContainer()
if err != nil { if err != nil {

@ -248,6 +248,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding {
Handler: gui.handleContainerViewLogs, Handler: gui.handleContainerViewLogs,
Description: gui.Tr.ViewLogs, Description: gui.Tr.ViewLogs,
}, },
{
ViewName: "containers",
Key: 'E',
Modifier: gocui.ModNone,
Handler: gui.handleContainersExecShell,
Description: gui.Tr.ExecShell,
},
{ {
ViewName: "containers", ViewName: "containers",
Key: 'c', Key: 'c',

@ -80,6 +80,7 @@ type TranslationSet struct {
StopAllContainers string StopAllContainers string
RemoveAllContainers string RemoveAllContainers string
ViewRestartOptions string ViewRestartOptions string
ExecShell string
RunCustomCommand string RunCustomCommand string
ViewBulkCommands string ViewBulkCommands string
OpenInBrowser string OpenInBrowser string
@ -149,6 +150,7 @@ func englishSet() TranslationSet {
StopAllContainers: "stop all containers", StopAllContainers: "stop all containers",
RemoveAllContainers: "remove all containers (forced)", RemoveAllContainers: "remove all containers (forced)",
ViewRestartOptions: "view restart options", ViewRestartOptions: "view restart options",
ExecShell: "exec shell",
RunCustomCommand: "run predefined custom command", RunCustomCommand: "run predefined custom command",
ViewBulkCommands: "view bulk commands", ViewBulkCommands: "view bulk commands",
OpenInBrowser: "open in browser (first port is http)", OpenInBrowser: "open in browser (first port is http)",

Loading…
Cancel
Save