From af7c12e5d42b6a19fd657138862ca6db6942d402 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 9 Oct 2024 23:44:09 +0300 Subject: refactor --- internal/prompt/prompt.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 internal/prompt/prompt.go (limited to 'internal/prompt') diff --git a/internal/prompt/prompt.go b/internal/prompt/prompt.go new file mode 100644 index 0000000..0afe98e --- /dev/null +++ b/internal/prompt/prompt.go @@ -0,0 +1,34 @@ +package prompt + +import ( + "bufio" + "errors" + "fmt" + "os" + "strings" +) + +var ErrAborted = errors.New("aborted") + +func Yes(question string) bool { + reader := bufio.NewReader(os.Stdin) + + for { + fmt.Print(question, " (y/n): ") + input, err := reader.ReadString('\n') + if err != nil { + fmt.Println("Error reading input:", err) + continue + } + + input = strings.TrimSpace(input) + switch strings.ToLower(input) { + case "y", "yes": + return true + case "n", "no": + return false + default: + fmt.Println("Please enter 'y' or 'n'.") + } + } +} -- cgit v1.2.3