From e175cf1fc9e3de42525301317a5d93ce7818f2f2 Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Tue, 8 Oct 2024 15:32:24 -0500 Subject: [PATCH] add basic confim util --- src/hwylterm.nim | 4 ++-- src/hwylterm/confirm.nim | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 src/hwylterm/confirm.nim diff --git a/src/hwylterm.nim b/src/hwylterm.nim index 336ff7b..0d78f01 100644 --- a/src/hwylterm.nim +++ b/src/hwylterm.nim @@ -10,5 +10,5 @@ ]## -import hwylterm/[spin, bbansi] -export spin, bbansi +import hwylterm/[spin, bbansi, confirm] +export spin, bbansi, confirm diff --git a/src/hwylterm/confirm.nim b/src/hwylterm/confirm.nim new file mode 100644 index 0000000..84308fb --- /dev/null +++ b/src/hwylterm/confirm.nim @@ -0,0 +1,21 @@ +import std/[strutils] +import ./bbansi + +proc confirm*( + question: string, + prefix = "", + suffix = "" +): bool = + result = false + stderr.write $(question & bb"[yellow] (Y/n) ") + while true: + let ans = readLine(stdin) + case ans.strip().toLowerAscii(): + of "y","yes": return true + of "n","no": return false + else: + stderr.write($bb("[red]Please answer Yes/no\nexpected one of [b]Y,yes,N,no ")) + stderr.write "\n" + +when isMainModule: + echo "Response: ", confirm("Is it working?")