Ask -> Request, while Seek makes the answer optional

This commit is contained in:
Manuele Sarfatti 2025-05-20 17:33:11 +02:00
parent 5ff6a50d32
commit ce6bfcd04c
6 changed files with 93 additions and 33 deletions

62
dist/beddu.sh vendored
View file

@ -2,7 +2,7 @@
# shellcheck disable=all
#
# beddu.sh - A lightweight bash framework for interactive scripts and pretty output
# Version: v1.0.0
# Version: v1.0.0-1-g5ff6a50-dirty
#
# Copyright © 2025 Manuele Sarfatti
# Licensed under the MIT license
@ -190,29 +190,6 @@ warn() {
pen italic "$@"
}
ask() {
local -n outvar="$1"
local prompt
local answer
prompt=$(
pen -n blue "${_q:-?} "
pen "${2}"
pen -n blue "${_a:-} "
)
show_cursor
while true; do
read -r -p "$prompt" answer
case "$answer" in
"")
echo
warn "Please type your answer."
;;
*) break ;;
esac
done
outvar="$answer"
}
choose() {
local -n outvar="$1"
local prompt
@ -309,3 +286,40 @@ confirm() {
esac
done
}
request() {
local -n outvar="$1"
local prompt
local answer
prompt=$(
pen -n blue "${_q:-?} "
pen "${2}"
pen -n blue "${_a:-} "
)
show_cursor
while true; do
read -r -p "$prompt" answer
case "$answer" in
"")
echo
warn "Please type your answer."
;;
*) break ;;
esac
done
outvar="$answer"
}
seek() {
local -n outvar="$1"
local prompt
local answer
prompt=$(
pen -n blue "${_q:-?} "
pen "${2}"
pen -n blue "${_a:-} "
)
show_cursor
read -r -p "$prompt" answer
outvar="$answer"
}