Flush terminal input and make repo cache global

Restore and sanitize terminal state before prompting by draining stale input from /dev/tty (dd iflag=nonblock) and adding a short sleep, then perform timed reads from /dev/tty in misc/build.func and misc/error_handler.func. Also make _REPO_CACHE a global associative array (declare -gA) with fallbacks in misc/tools.func so the cache survives when tools.func is sourced inside a function scope.
This commit is contained in:
CanbiZ (MickLesk)
2026-03-02 10:40:17 +01:00
parent 96b5411d1d
commit 750b904abc
3 changed files with 16 additions and 6 deletions

View File

@@ -286,10 +286,12 @@ error_handler() {
echo -en "${YW}Remove broken container ${CTID}? (Y/n) [auto-remove in 60s]: ${CL}"
fi
# Reset terminal state and read directly from /dev/tty (fresh open = clean state)
# Reset terminal state and flush stale input from buffer
stty sane 2>/dev/null || true
dd iflag=nonblock if=/dev/tty of=/dev/null 2>/dev/null || true
sleep 0.3
local response=""
if read -t 60 -r response </dev/tty 2>/dev/null; then
if read -t 60 -r response </dev/tty; then
if [[ -z "$response" || "$response" =~ ^[Yy]$ ]]; then
echo ""
if declare -f msg_info >/dev/null 2>&1; then