buildx/commands
Justin Chadwell e826141af4 controller: refactor progress api
Refactor the progress printer creation to the caller-side of the
controller api. Then, instead of passing around status channels (and
progressMode strings), we can simply pass around the higher level
interface progress.Writer.

This has a couple of benefits:
- A simplified interface to the controller
- Allows us to correctly extract warnings out of the controller, so that
  they can be displayed correctly from the client side.

Some extra work is required to make sure that we can pass a
progress.Printer into the debug monitor. If we want to keep it
persistent, then we need a way to temporarily suspend output from it,
otherwise it will continue printing as the monitor is prompting for
input from the user, and forwarding output from debug containers.

To handle this, we add two methods to the printer, `Pause` and
`Unpause`. `Pause` acts similarly to `Wait`, closing the printer, and
cleanly shutting down the display - however, the printer does not
terminate, and can later be resumed by a call to `Unpause`. This
provides a neater interface to the caller, instead of needing to
continually reconstruct printers for every single time we want to
produce progress output.

Signed-off-by: Justin Chadwell <me@jedevc.com>
..
imagetools mutualize builder logic
bake.go controller: Extract nested CommonOptions on controller API
build.go controller: refactor progress api
build_test.go build: avoid resolution of dockerfile if context is remote
create.go k8s: generate node name if not provided
create_test.go Fix tolerations not parsing its options correctly, add tests
debug-shell.go controller: refactor progress api
diskusage.go mutualize builder logic
inspect.go store: set nodegroup last activity
install.go cli: fix builder persistent flag
ls.go mutualize builder logic
prune.go mutualize builder logic
rm.go rm: do not check for context builders when removing inactive
root.go Add flags and subcommand
stop.go mutualize builder logic
uninstall.go cli: fix builder persistent flag
use.go dockerutil pkg to manage docker api client and context
version.go cli: fix builder persistent flag