From 9c40d972f6af13d512f5cea68ac959238b838c96 Mon Sep 17 00:00:00 2001 From: Robert Laszczak Date: Mon, 31 Jan 2022 21:53:14 +0100 Subject: [PATCH] Improved interactive mode --- internal/confirm.go | 5 ++++- trainings/init.go | 6 +++--- trainings/run.go | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/confirm.go b/internal/confirm.go index deeb01e..9bd17ff 100644 --- a/internal/confirm.go +++ b/internal/confirm.go @@ -76,7 +76,10 @@ func FConfirmPromptDefaultYes(action string, stdin io.Reader, stdout io.Writer) logrus.WithField("input", input).Debug("Received input") - if input == "n" || input == "no" || input == "q" || input == endOfTextChar { + if input == endOfTextChar { + clean() + os.Exit(0) + } else if input == "q" || input == "n" || input == "no" { return false } else if input == "\r" || input == "\n" || input == "" { return true diff --git a/trainings/init.go b/trainings/init.go index bdc8d76..2d6be19 100644 --- a/trainings/init.go +++ b/trainings/init.go @@ -89,12 +89,12 @@ func (h *Handlers) showTrainingStartPrompt() error { return errors.Wrap(err, "can't get wd") } - msg := fmt.Sprintf( - "This command will clone training source code to %s directory. Do you want to continue?", + fmt.Printf( + "This command will clone training source code to %s directory.\n", pwd, ) - if !internal.ConfirmPromptDefaultYes(msg) { + if !internal.ConfirmPromptDefaultYes("continue") { return ErrInterrupted } diff --git a/trainings/run.go b/trainings/run.go index 10e8390..f095f1a 100644 --- a/trainings/run.go +++ b/trainings/run.go @@ -76,6 +76,7 @@ func (h *Handlers) run(ctx context.Context) (success bool, finished bool, err er fmt.Println() if !internal.ConfirmPromptDefaultYes("go to the next exercise") { + os.Exit(0) return success, false, nil }