mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-07-10 13:37:08 +08:00
commands: handle ctrl-c on active prompt
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
23
commands/util.go
Normal file
23
commands/util.go
Normal file
@ -0,0 +1,23 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
|
||||
"github.com/docker/cli/cli/command"
|
||||
)
|
||||
|
||||
func prompt(ctx context.Context, ins io.Reader, out io.Writer, msg string) (bool, error) {
|
||||
done := make(chan struct{})
|
||||
var ok bool
|
||||
go func() {
|
||||
ok = command.PromptForConfirmation(ins, out, msg)
|
||||
close(done)
|
||||
}()
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return false, context.Cause(ctx)
|
||||
case <-done:
|
||||
return ok, nil
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user