This commit is contained in:
CanbiZ 2025-07-04 13:01:32 +02:00
parent 2e11149f33
commit 408b16c5a5
2 changed files with 24 additions and 10 deletions

View File

@ -250,6 +250,17 @@ header_info() {
fi fi
} }
ensure_tput() {
if ! command -v tput >/dev/null 2>&1; then
if grep -qi 'alpine' /etc/os-release; then
apk add --no-cache ncurses >/dev/null 2>&1
elif command -v apt-get >/dev/null 2>&1; then
apt-get update -qq >/dev/null
apt-get install -y -qq ncurses-bin >/dev/null 2>&1
fi
fi
}
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Handles specific curl error codes and displays descriptive messages. # Handles specific curl error codes and displays descriptive messages.
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@ -302,6 +313,11 @@ spinner() {
done done
} }
clear_line() {
tput cr 2>/dev/null || echo -en "\r"
tput el 2>/dev/null || echo -en "\033[K"
}
stop_spinner() { stop_spinner() {
local pid="${SPINNER_PID:-}" local pid="${SPINNER_PID:-}"
[[ -z "$pid" && -f /tmp/.spinner.pid ]] && pid=$(</tmp/.spinner.pid) [[ -z "$pid" && -f /tmp/.spinner.pid ]] && pid=$(</tmp/.spinner.pid)
@ -346,14 +362,12 @@ msg_info() {
} }
msg_ok() { msg_ok() {
stop_spinner
local msg="$1" local msg="$1"
if [[ "${VERBOSE:-no}" != "no" || "${var_os:-}" == "alpine" || ! -t 2 ]]; then [[ -z "$msg" ]] && return
local CHECK="${TAB}✔️${TAB}" stop_spinner
printf "\r\e[2K%s %b\n" "$CHECK" "${GN}${msg}${CL}" >&2 clear_line
else printf "%s %b\n" "$CM" "${GN}${msg}${CL}" >&2
echo -e "${BFR:-} ${CM:-✔️} ${GN}${msg}${CL}" unset MSG_INFO_SHOWN["$msg"]
fi
} }
msg_error() { msg_error() {

View File

@ -73,7 +73,7 @@ if ! check_storage_support "vztmpl"; then
msg_error "No valid storage found for 'vztmpl' (Template)." msg_error "No valid storage found for 'vztmpl' (Template)."
exit 1 exit 1
fi fi
msg_ok "Storage types rootdir and vztmpl are supported." msg_ok "Validated Storage (rootdir / vztmpl)."
# This function is used to select the storage class and determine the corresponding storage content type and label. # This function is used to select the storage class and determine the corresponding storage content type and label.
function select_storage() { function select_storage() {
@ -153,7 +153,6 @@ function select_storage() {
exit 202 exit 202
} }
# Validierung gegen STORAGE_MAP
if [[ -z "$DISPLAY_SELECTED" || -z "${STORAGE_MAP[$DISPLAY_SELECTED]+_}" ]]; then if [[ -z "$DISPLAY_SELECTED" || -z "${STORAGE_MAP[$DISPLAY_SELECTED]+_}" ]]; then
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Invalid Selection" \ whiptail --backtitle "Proxmox VE Helper Scripts" --title "Invalid Selection" \
--msgbox "No valid storage selected. Please choose a storage pool to continue." 9 60 --msgbox "No valid storage selected. Please choose a storage pool to continue." 9 60
@ -298,6 +297,8 @@ if ! pveam list "$TEMPLATE_STORAGE" | grep -q "$TEMPLATE" || ! zstdcat "$TEMPLAT
fi fi
msg_ok "LXC Template '$TEMPLATE' is ready to use." msg_ok "LXC Template '$TEMPLATE' is ready to use."
msg_info "Creating LXC Container"
# Check and fix subuid/subgid # Check and fix subuid/subgid
grep -q "root:100000:65536" /etc/subuid || echo "root:100000:65536" >>/etc/subuid grep -q "root:100000:65536" /etc/subuid || echo "root:100000:65536" >>/etc/subuid
grep -q "root:100000:65536" /etc/subgid || echo "root:100000:65536" >>/etc/subgid grep -q "root:100000:65536" /etc/subgid || echo "root:100000:65536" >>/etc/subgid
@ -317,7 +318,6 @@ flock -w 60 9 || {
exit 211 exit 211
} }
msg_info "Creating LXC Container"
if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then
msg_error "Container creation failed. Checking if template is corrupted or incomplete." msg_error "Container creation failed. Checking if template is corrupted or incomplete."