(ctx context.Context, d progressui.Display)
| 152 | } |
| 153 | |
| 154 | func (p *Printer) run(ctx context.Context, d progressui.Display) { |
| 155 | defer close(p.done) |
| 156 | defer close(p.interrupt) |
| 157 | |
| 158 | var ss []*client.SolveStatus |
| 159 | for { |
| 160 | switch p.state { |
| 161 | case printerStatePaused: |
| 162 | ss, p.err = p.bufferDisplay(ctx, ss) |
| 163 | case printerStateRunning: |
| 164 | p.warnings, ss, p.err = p.updateDisplay(ctx, d, ss) |
| 165 | if p.opt.onclose != nil { |
| 166 | p.opt.onclose() |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | if p.state == printerStateDone { |
| 171 | break |
| 172 | } |
| 173 | d, _ = p.newDisplay() |
| 174 | } |
| 175 | } |
| 176 | |
| 177 | func (p *Printer) newDisplay() (progressui.Display, error) { |
| 178 | return progressui.NewDisplay(p.out, p.mode, p.opt.displayOpts...) |
no test coverage detected