Update build.func

This commit is contained in:
CanbiZ 2025-03-27 09:32:34 +01:00
parent 55f5c5a3c2
commit 714f7a459c

View File

@ -90,6 +90,7 @@ declare -A MSG_INFO_SHOWN
SPINNER_ACTIVE=0 SPINNER_ACTIVE=0
SPINNER_PID="" SPINNER_PID=""
SPINNER_MSG="" SPINNER_MSG=""
SPINNER_LINE_PRINTED=0
trap 'stop_spinner' EXIT INT TERM HUP trap 'stop_spinner' EXIT INT TERM HUP
@ -100,10 +101,16 @@ start_spinner() {
local interval=0.1 local interval=0.1
SPINNER_MSG="$msg" SPINNER_MSG="$msg"
SPINNER_LINE_PRINTED=0
{ {
while [[ "$SPINNER_ACTIVE" -eq 1 ]]; do while [[ "$SPINNER_ACTIVE" -eq 1 ]]; do
printf "\r\e[2K%s %b" "${frames[spin_i]}" "${YW}${SPINNER_MSG}${CL}" >&2 if [[ "$SPINNER_LINE_PRINTED" -eq 0 ]]; then
printf "\r\e[2K%s %b\n" "${frames[spin_i]}" "${YW}${SPINNER_MSG}${CL}" >&2
SPINNER_LINE_PRINTED=1
else
printf "\r\e[1A\e[2K%s %b\n" "${frames[spin_i]}" "${YW}${SPINNER_MSG}${CL}" >&2
fi
spin_i=$(((spin_i + 1) % ${#frames[@]})) spin_i=$(((spin_i + 1) % ${#frames[@]}))
sleep "$interval" sleep "$interval"
done done
@ -121,6 +128,7 @@ stop_spinner() {
wait "$SPINNER_PID" 2>/dev/null || true wait "$SPINNER_PID" 2>/dev/null || true
fi fi
SPINNER_ACTIVE=0 SPINNER_ACTIVE=0
SPINNER_LINE_PRINTED=0
unset SPINNER_PID unset SPINNER_PID
} }