Update core.func

This commit is contained in:
CanbiZ 2025-05-15 15:42:24 +02:00
parent 1110ed29fc
commit 63b4e0a627

View File

@ -240,14 +240,13 @@ fatal() {
kill -INT $$ kill -INT $$
} }
### dev spinner ### # Ensure POSIX compatibility across Alpine and Debian/Ubuntu
# === Spinner Start ===
# Trap cleanup on various signals # Trap cleanup on various signals
trap 'cleanup_spinner' EXIT INT TERM HUP trap 'cleanup_spinner' EXIT INT TERM HUP
spinner_frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏') spinner_frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
# Ensure POSIX compatibility across Alpine and Debian/Ubuntu
# === Spinner Start ===
start_spinner() { start_spinner() {
local msg="$1" local msg="$1"
local spin_i=0 local spin_i=0
@ -270,33 +269,15 @@ start_spinner() {
done done
} & } &
local pid=$! SPINNER_PID=$!
if kill -0 "$pid" 2>/dev/null; then
SPINNER_PID="$pid"
else
SPINNER_ACTIVE=0
SPINNER_PID=""
fi
} }
stop_spinner() { stop_spinner() {
if [[ "$SPINNER_ACTIVE" -eq 1 && -n "$SPINNER_PID" ]]; then if [[ "$SPINNER_ACTIVE" -eq 1 && -n "$SPINNER_PID" ]]; then
SPINNER_ACTIVE=0 SPINNER_ACTIVE=0
if kill -0 "$SPINNER_PID" 2>/dev/null; then
kill "$SPINNER_PID" 2>/dev/null || true kill "$SPINNER_PID" 2>/dev/null || true
for _ in $(seq 1 10); do
sleep 0.05
kill -0 "$SPINNER_PID" 2>/dev/null || break
done
fi
if [[ "$SPINNER_PID" =~ ^[0-9]+$ ]] && kill -0 "$SPINNER_PID" 2>/dev/null; then
wait "$SPINNER_PID" 2>/dev/null || true
fi
printf "\r\e[2K" >&2
SPINNER_PID="" SPINNER_PID=""
printf "\r\e[2K" >&2
fi fi
} }