Merge pull request #247 from stokito/exec_shell

Exec shell: separate menu item and auto detect shell: bash or sh
This commit is contained in:
Mark Kopenga
2021-03-24 21:38:10 +01:00
committed by GitHub
5 changed files with 26 additions and 2 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ customCommands:
containers:
- name: bash
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: []
oS:
openCommand: open {{filename}}
+1 -1
View File
@@ -344,7 +344,7 @@ func GetDefaultConfig() UserConfig {
Containers: []CustomCommand{
{
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,
},
},
+15
View File
@@ -509,6 +509,21 @@ func (gui *Gui) handleContainerViewLogs(g *gocui.Gui, v *gocui.View) error {
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 {
container, err := gui.getSelectedContainer()
if err != nil {
+7
View File
@@ -248,6 +248,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding {
Handler: gui.handleContainerViewLogs,
Description: gui.Tr.ViewLogs,
},
{
ViewName: "containers",
Key: 'E',
Modifier: gocui.ModNone,
Handler: gui.handleContainersExecShell,
Description: gui.Tr.ExecShell,
},
{
ViewName: "containers",
Key: 'c',
+2
View File
@@ -80,6 +80,7 @@ type TranslationSet struct {
StopAllContainers string
RemoveAllContainers string
ViewRestartOptions string
ExecShell string
RunCustomCommand string
ViewBulkCommands string
OpenInBrowser string
@@ -149,6 +150,7 @@ func englishSet() TranslationSet {
StopAllContainers: "stop all containers",
RemoveAllContainers: "remove all containers (forced)",
ViewRestartOptions: "view restart options",
ExecShell: "exec shell",
RunCustomCommand: "run predefined custom command",
ViewBulkCommands: "view bulk commands",
OpenInBrowser: "open in browser (first port is http)",