HandleConsoleResize resizes the console. From https://github.com/containerd/containerd/blob/v1.7.0-rc.2/cmd/ctr/commands/tasks/tasks_windows.go#L34-L61
(ctx context.Context, task resizer, con console.Console)
| 27 | // HandleConsoleResize resizes the console. |
| 28 | // From https://github.com/containerd/containerd/blob/v1.7.0-rc.2/cmd/ctr/commands/tasks/tasks_windows.go#L34-L61 |
| 29 | func HandleConsoleResize(ctx context.Context, task resizer, con console.Console) error { |
| 30 | // do an initial resize of the console |
| 31 | size, err := con.Size() |
| 32 | if err != nil { |
| 33 | return err |
| 34 | } |
| 35 | go func() { |
| 36 | prevSize := size |
| 37 | for { |
| 38 | time.Sleep(time.Millisecond * 250) |
| 39 | |
| 40 | size, err := con.Size() |
| 41 | if err != nil { |
| 42 | log.G(ctx).WithError(err).Error("get pty size") |
| 43 | continue |
| 44 | } |
| 45 | |
| 46 | if size.Width != prevSize.Width || size.Height != prevSize.Height { |
| 47 | if err := task.Resize(ctx, uint32(size.Width), uint32(size.Height)); err != nil { |
| 48 | log.G(ctx).WithError(err).Error("resize pty") |
| 49 | } |
| 50 | prevSize = size |
| 51 | } |
| 52 | } |
| 53 | }() |
| 54 | return nil |
| 55 | } |