This commit is contained in:
CanbiZ 2025-09-15 15:34:41 +02:00
parent c3fd7ea4e4
commit 8d687ba9ab
4 changed files with 84 additions and 82 deletions

View File

@ -32,41 +32,41 @@ elif command -v wget >/dev/null 2>&1; then
#echo "(build.func) Loaded core.func via wget" #echo "(build.func) Loaded core.func via wget"
fi fi
set -Eeuo pipefail # set -Eeuo pipefail
trap 'error_handler $? $LINENO "$BASH_COMMAND"' ERR # trap 'error_handler $? $LINENO "$BASH_COMMAND"' ERR
trap on_exit EXIT # trap on_exit EXIT
trap on_interrupt INT # trap on_interrupt INT
trap on_terminate TERM # trap on_terminate TERM
error_handler() { # error_handler() {
local exit_code="$1" # local exit_code="$1"
local line_number="$2" # local line_number="$2"
local command="${3:-}" # local command="${3:-}"
if [[ "$exit_code" -eq 0 ]]; then # if [[ "$exit_code" -eq 0 ]]; then
return 0 # return 0
fi # fi
printf "\e[?25h" # printf "\e[?25h"
echo -e "\n${RD}[ERROR]${CL} in line ${RD}${line_number}${CL}: exit code ${RD}${exit_code}${CL}: while executing command ${YW}${command}${CL}\n" # echo -e "\n${RD}[ERROR]${CL} in line ${RD}${line_number}${CL}: exit code ${RD}${exit_code}${CL}: while executing command ${YW}${command}${CL}\n"
exit "$exit_code" # exit "$exit_code"
} # }
on_exit() { # on_exit() {
local exit_code="$?" # local exit_code="$?"
[[ -n "${lockfile:-}" && -e "$lockfile" ]] && rm -f "$lockfile" # [[ -n "${lockfile:-}" && -e "$lockfile" ]] && rm -f "$lockfile"
exit "$exit_code" # exit "$exit_code"
} # }
on_interrupt() { # on_interrupt() {
echo -e "\n${RD}Interrupted by user (SIGINT)${CL}" # echo -e "\n${RD}Interrupted by user (SIGINT)${CL}"
exit 130 # exit 130
} # }
on_terminate() { # on_terminate() {
echo -e "\n${RD}Terminated by signal (SIGTERM)${CL}" # echo -e "\n${RD}Terminated by signal (SIGTERM)${CL}"
exit 143 # exit 143
} # }
# Check if the shell is using bash # Check if the shell is using bash
shell_check() { shell_check() {

View File

@ -96,10 +96,10 @@ _tool_error_hint() {
# exit 143 # exit 143
# } # }
catch_errors() { # catch_errors() {
set -Eeuo pipefail # set -Eeuo pipefail
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR # trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
} # }
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Sets ANSI color codes used for styled terminal output. # Sets ANSI color codes used for styled terminal output.
@ -190,8 +190,11 @@ set_std_mode() {
} }
# Silent execution function # Silent execution function
SILENT_LOGFILE="/tmp/silent.$$.log"
silent() { silent() {
"$@" >/dev/null 2>&1 "$@" >>"$SILENT_LOGFILE" 2>&1
return $?
} }
# Function to download & save header files # Function to download & save header files

View File

@ -24,41 +24,41 @@ fi
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Strict error handling # Strict error handling
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
set -Eeuo pipefail # set -Eeuo pipefail
trap 'error_handler $? $LINENO "$BASH_COMMAND"' ERR # trap 'error_handler $? $LINENO "$BASH_COMMAND"' ERR
trap on_exit EXIT # trap on_exit EXIT
trap on_interrupt INT # trap on_interrupt INT
trap on_terminate TERM # trap on_terminate TERM
error_handler() { # error_handler() {
local exit_code="$1" # local exit_code="$1"
local line_number="$2" # local line_number="$2"
local command="${3:-}" # local command="${3:-}"
if [[ "$exit_code" -eq 0 ]]; then # if [[ "$exit_code" -eq 0 ]]; then
return 0 # return 0
fi # fi
printf "\e[?25h" # printf "\e[?25h"
echo -e "\n${RD}[ERROR]${CL} in line ${RD}${line_number}${CL}: exit code ${RD}${exit_code}${CL}: while executing command ${YW}${command}${CL}\n" # echo -e "\n${RD}[ERROR]${CL} in line ${RD}${line_number}${CL}: exit code ${RD}${exit_code}${CL}: while executing command ${YW}${command}${CL}\n"
exit "$exit_code" # exit "$exit_code"
} # }
on_exit() { # on_exit() {
local exit_code="$?" # local exit_code="$?"
[[ -n "${lockfile:-}" && -e "$lockfile" ]] && rm -f "$lockfile" # [[ -n "${lockfile:-}" && -e "$lockfile" ]] && rm -f "$lockfile"
exit "$exit_code" # exit "$exit_code"
} # }
on_interrupt() { # on_interrupt() {
echo -e "\n${RD}Interrupted by user (SIGINT)${CL}" # echo -e "\n${RD}Interrupted by user (SIGINT)${CL}"
exit 130 # exit 130
} # }
on_terminate() { # on_terminate() {
echo -e "\n${RD}Terminated by signal (SIGTERM)${CL}" # echo -e "\n${RD}Terminated by signal (SIGTERM)${CL}"
exit 143 # exit 143
} # }
exit_script() { exit_script() {
clear clear
@ -490,7 +490,6 @@ if ! pveam list "$TEMPLATE_STORAGE" 2>/dev/null | grep -q "$TEMPLATE"; then
msg_error "Template $TEMPLATE not available in storage $TEMPLATE_STORAGE after download." msg_error "Template $TEMPLATE not available in storage $TEMPLATE_STORAGE after download."
exit 223 exit 223
fi fi
msg_ok "Template $TEMPLATE is ready for container creation."
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Dynamic preflight for Debian 13.x: offer upgrade if available (no hard mins) # Dynamic preflight for Debian 13.x: offer upgrade if available (no hard mins)

View File

@ -25,27 +25,27 @@ verb_ip6() {
fi fi
} }
# This function sets error handling options and defines the error_handler function to handle errors # # This function sets error handling options and defines the error_handler function to handle errors
catch_errors() { # catch_errors() {
set -Eeuo pipefail # set -Eeuo pipefail
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR # trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
} # }
# This function handles errors # # This function handles errors
error_handler() { # error_handler() {
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/api.func) # source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/api.func)
local exit_code="$1" # local exit_code="$1"
local line_number="$2" # local line_number="$2"
local command="${3:-}" # local command="${3:-}"
if [[ "$exit_code" -eq 0 ]]; then # if [[ "$exit_code" -eq 0 ]]; then
return 0 # return 0
fi # fi
printf "\e[?25h" # printf "\e[?25h"
echo -e "\n${RD}[ERROR]${CL} in line ${RD}${line_number}${CL}: exit code ${RD}${exit_code}${CL}: while executing command ${YW}${command}${CL}\n" # echo -e "\n${RD}[ERROR]${CL} in line ${RD}${line_number}${CL}: exit code ${RD}${exit_code}${CL}: while executing command ${YW}${command}${CL}\n"
exit "$exit_code" # exit "$exit_code"
} #}
# This function sets up the Container OS by generating the locale, setting the timezone, and checking the network connection # This function sets up the Container OS by generating the locale, setting the timezone, and checking the network connection
setting_up_container() { setting_up_container() {