Skip to content

Commit

Permalink
Merge pull request #3627 from vvoland/3554-exec-size
Browse files Browse the repository at this point in the history
command/exec: Fill ConsoleSize
  • Loading branch information
thaJeztah authored Jun 27, 2022
2 parents 64520f8 + a141f1c commit 44f3b87
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions cli/command/container/exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,8 @@ func RunExec(dockerCli command.Cli, options ExecOptions) error {
}
}

fillConsoleSize(execConfig, dockerCli)

response, err := client.ContainerExecCreate(ctx, options.Container, *execConfig)
if err != nil {
return err
Expand All @@ -129,14 +131,22 @@ func RunExec(dockerCli command.Cli, options ExecOptions) error {

if execConfig.Detach {
execStartCheck := types.ExecStartCheck{
Detach: execConfig.Detach,
Tty: execConfig.Tty,
Detach: execConfig.Detach,
Tty: execConfig.Tty,
ConsoleSize: execConfig.ConsoleSize,
}
return client.ContainerExecStart(ctx, execID, execStartCheck)
}
return interactiveExec(ctx, dockerCli, execConfig, execID)
}

func fillConsoleSize(execConfig *types.ExecConfig, dockerCli command.Cli) {
if execConfig.Tty {
height, width := dockerCli.Out().GetTtySize()
execConfig.ConsoleSize = &[2]uint{height, width}
}
}

func interactiveExec(ctx context.Context, dockerCli command.Cli, execConfig *types.ExecConfig, execID string) error {
// Interactive exec requested.
var (
Expand All @@ -157,10 +167,12 @@ func interactiveExec(ctx context.Context, dockerCli command.Cli, execConfig *typ
stderr = dockerCli.Err()
}
}
fillConsoleSize(execConfig, dockerCli)

client := dockerCli.Client()
execStartCheck := types.ExecStartCheck{
Tty: execConfig.Tty,
Tty: execConfig.Tty,
ConsoleSize: execConfig.ConsoleSize,
}
resp, err := client.ContainerExecAttach(ctx, execID, execStartCheck)
if err != nil {
Expand Down

0 comments on commit 44f3b87

Please sign in to comment.