Update core.func

This commit is contained in:
CanbiZ 2025-06-30 08:53:05 +02:00
parent 4da9455c59
commit 121d05496c

View File

@ -20,10 +20,10 @@ if ! declare -f wait_for >/dev/null; then
} }
fi fi
declare -A MSG_INFO_SHOWN=() # declare -A MSG_INFO_SHOWN=()
SPINNER_PID="" # SPINNER_PID=""
SPINNER_ACTIVE=0 # SPINNER_ACTIVE=0
SPINNER_MSG="" # SPINNER_MSG=""
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Loads core utility groups once (colors, formatting, icons, defaults). # Loads core utility groups once (colors, formatting, icons, defaults).
@ -47,9 +47,9 @@ load_functions() {
# Error & Signal Handling robust, universal, subshell-safe # Error & Signal Handling robust, universal, subshell-safe
# ============================================================================ # ============================================================================
_stop_spinner_on_error() { # _stop_spinner_on_error() {
[[ -n "${SPINNER_PID:-}" ]] && kill "$SPINNER_PID" 2>/dev/null && wait "$SPINNER_PID" 2>/dev/null || true # [[ -n "${SPINNER_PID:-}" ]] && kill "$SPINNER_PID" 2>/dev/null && wait "$SPINNER_PID" 2>/dev/null || true
} # }
_tool_error_hint() { _tool_error_hint() {
local cmd="$1" local cmd="$1"
@ -89,35 +89,35 @@ _tool_error_hint() {
esac esac
} }
on_error() { # on_error() {
local code="$?" # local code="$?"
local line="${BASH_LINENO[0]:-unknown}" # local line="${BASH_LINENO[0]:-unknown}"
local cmd="${BASH_COMMAND:-unknown}" # local cmd="${BASH_COMMAND:-unknown}"
# Signalcode unterdrücken, falls INT/TERM kommt # # Signalcode unterdrücken, falls INT/TERM kommt
[[ "$code" == "130" || "$code" == "143" ]] && return # [[ "$code" == "130" || "$code" == "143" ]] && return
_stop_spinner_on_error # _stop_spinner_on_error
msg_error "Script failed at line $line with exit code $code: $cmd" # msg_error "Script failed at line $line with exit code $code: $cmd"
exit "$code" # exit "$code"
} # }
on_exit() { # on_exit() {
_stop_spinner_on_error # _stop_spinner_on_error
[[ "${VERBOSE:-no}" == "yes" ]] && msg_info "Script exited cleanly" # [[ "${VERBOSE:-no}" == "yes" ]] && msg_info "Script exited cleanly"
} # }
on_interrupt() { # on_interrupt() {
_stop_spinner_on_error # _stop_spinner_on_error
msg_error "Interrupted by user (CTRL+C)" # msg_error "Interrupted by user (CTRL+C)"
exit 130 # exit 130
} # }
on_terminate() { # on_terminate() {
_stop_spinner_on_error # _stop_spinner_on_error
msg_error "Terminated by signal (SIGTERM)" # msg_error "Terminated by signal (SIGTERM)"
exit 143 # exit 143
} # }
catch_errors() { catch_errors() {
trap 'on_error' ERR trap 'on_error' ERR
@ -428,19 +428,19 @@ fatal() {
# stop_spinner # stop_spinner
# } # }
msg_info() { # msg_info() {
local msg="$1" # local msg="$1"
[[ -z "$msg" || -n "${MSG_INFO_SHOWN["$msg"]+x}" ]] && return # [[ -z "$msg" || -n "${MSG_INFO_SHOWN["$msg"]+x}" ]] && return
MSG_INFO_SHOWN["$msg"]=1 # MSG_INFO_SHOWN["$msg"]=1
stop_spinner # stop_spinner
echo -e "OS: ${var_os:-}" # echo -e "OS: ${var_os:-}"
if [[ "${VERBOSE:-no}" != "no" || "${var_os:-}" == "alpine" || ! -t 2 ]]; then # if [[ "${VERBOSE:-no}" != "no" || "${var_os:-}" == "alpine" || ! -t 2 ]]; then
printf "\r\e[2K%s %b\n" "$HOURGLASS" "${YW}${msg}${CL}" >&2 # printf "\r\e[2K%s %b\n" "$HOURGLASS" "${YW}${msg}${CL}" >&2
else # else
start_spinner "$msg" # start_spinner "$msg"
fi # fi
} # }
spinner() { spinner() {
local chars="/-\|" i=0 local chars="/-\|" i=0