2025-05-07 13:46:45 +02:00

851 lines
27 KiB
Plaintext

# dialog_input() {
# local title="$1"
# local prompt="$2"
# local default="$3"
# local result
# apt-get install -y dialog
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "$title" \
# --extra-button --extra-label "Back" \
# --ok-label "Next" --cancel-label "Exit" \
# --inputbox "$prompt" 10 58 "$default" 2>&1 >/dev/tty)
# local exitcode=$?
# case $exitcode in
# 0)
# REPLY_RESULT="$result"
# return 0
# ;; # OK
# 3) return 2 ;; # Back
# *) return 1 ;; # Cancel/Exit
# esac
# }
# advanced_settings() {
# local step=1
# while true; do
# case $step in
# 1)
# show_intro_messages && ((step++))
# ;;
# 2)
# select_distribution
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 3)
# select_version
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 4)
# select_container_type
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 5)
# set_root_password
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 6)
# set_container_id
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 7)
# set_hostname
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 8)
# set_disk_size
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 9)
# set_cpu_cores
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 10)
# set_ram_size
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 11)
# set_bridge
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 12)
# set_ip_address
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 13)
# set_gateway
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 14)
# set_apt_cacher
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 15)
# toggle_ipv6
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 16)
# set_mtu
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 17)
# set_dns_search_domain
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 18)
# set_dns_server
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 19)
# set_mac_address
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 20)
# set_vlan
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 21)
# set_tags
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 22)
# set_ssh_access
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 23)
# set_fuse
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 24)
# set_verbose
# result=$?
# [[ $result -eq 0 ]] && ((step++))
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# 25)
# confirm_creation
# result=$?
# [[ $result -eq 0 ]] && break
# [[ $result -eq 2 && $step -gt 1 ]] && ((step--))
# [[ $result -eq 1 ]] && return
# ;;
# esac
# done
# }
# show_intro_messages() {
# dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "Instructional Tip" \
# --msgbox "To make a selection, use the Spacebar." 8 58 || return 1
# dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "Default distribution for $APP" \
# --msgbox "Default is: ${var_os} ${var_version}\n\nIf the default Linux distribution is not adhered to, script support will be discontinued." 10 58 || return 1
# return 0
# }
# select_distribution() {
# [[ "$var_os" == "alpine" ]] && return 0
# local default result exitcode
# default="${var_os:-debian}"
# var_os=""
# local debian_flag ubuntu_flag
# [[ "$default" == "debian" ]] && debian_flag="on" || debian_flag="off"
# [[ "$default" == "ubuntu" ]] && ubuntu_flag="on" || ubuntu_flag="off"
# while [[ -z "$var_os" ]]; do
# exec 3>&1
# result=$(dialog --clear \
# --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "DISTRIBUTION" \
# --radiolist "Choose Distribution:" 15 60 4 \
# "debian" "" "$debian_flag" \
# "ubuntu" "" "$ubuntu_flag" \
# --ok-label "Next" \
# --cancel-label "Exit" \
# --extra-button \
# --extra-label "Back" \
# 2>&1 1>&3)
# exitcode=$?
# exec 3>&-
# case "$exitcode" in
# 0)
# if [[ "$result" =~ ^(debian|ubuntu)$ ]]; then
# var_os="$result"
# printf "%bOperating System: %b%s%b\n" "$OS$BOLD$DGN" "$BGN" "$var_os" "$CL"
# return 0
# else
# printf "[DEBUG] No valid selection made (result='%s'), repeating...\n" "$result"
# fi
# ;;
# 3)
# return 2
# ;;
# 1 | 255)
# return 1
# ;;
# *)
# printf "[DEBUG] Unexpected exit code: %s\n" "$exitcode" >&2
# return 1
# ;;
# esac
# done
# }
# select_version() {
# local default="${var_version}"
# var_version=""
# local list result exitcode
# if [[ "$var_os" == "debian" ]]; then
# case "$default" in
# 11) list=("11" "Bullseye" on "12" "Bookworm" off) ;;
# 12) list=("11" "Bullseye" off "12" "Bookworm" on) ;;
# *) list=("11" "Bullseye" off "12" "Bookworm" off) ;;
# esac
# elif [[ "$var_os" == "ubuntu" ]]; then
# case "$default" in
# 20.04) list=("20.04" "Focal" on "22.04" "Jammy" off "24.04" "Noble" off "24.10" "Oracular" off) ;;
# 22.04) list=("20.04" "Focal" off "22.04" "Jammy" on "24.04" "Noble" off "24.10" "Oracular" off) ;;
# 24.04) list=("20.04" "Focal" off "22.04" "Jammy" off "24.04" "Noble" on "24.10" "Oracular" off) ;;
# 24.10) list=("20.04" "Focal" off "22.04" "Jammy" off "24.04" "Noble" off "24.10" "Oracular" on) ;;
# *) list=("20.04" "Focal" off "22.04" "Jammy" off "24.04" "Noble" off "24.10" "Oracular" off) ;;
# esac
# fi
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "VERSION" \
# --radiolist "Choose Version:" 15 58 5 \
# "${list[@]}" \
# --ok-label "Next" \
# --cancel-label "Exit" \
# --extra-button --extra-label "Back" \
# 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# var_version="$result"
# printf "%bVersion: %b%s%b\n" "$OSVERSION$BOLD$DGN" "$BGN" "$var_version" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# select_container_type() {
# local default="${CT_TYPE}"
# CT_TYPE=""
# local list result exitcode
# [[ "$default" == "1" ]] && list=("1" "Unprivileged" on "0" "Privileged" off) || list=("1" "Unprivileged" off "0" "Privileged" on)
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "CONTAINER TYPE" \
# --radiolist "Choose Type:" 10 58 2 "${list[@]}" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# CT_TYPE="$result"
# [[ "$CT_TYPE" == "0" ]] && desc="Privileged" || desc="Unprivileged"
# printf "%bContainer Type: %b%s%b\n" "$CONTAINERTYPE$BOLD$DGN" "$BGN" "$desc" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_root_password() {
# local pw1 pw2 exitcode
# while true; do
# pw1=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "PASSWORD (leave blank for automatic login)" \
# --insecure --passwordbox "\nSet Root Password (needed for root ssh access)" 10 58 \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$pw1" ]]; then
# PW1="Automatic Login"
# PW=""
# printf "%bRoot Password: %b%s%b\n" "$VERIFYPW$BOLD$DGN" "$BGN" "$PW1" "$CL"
# return 0
# fi
# if [[ "$pw1" == *" "* ]]; then
# dialog --msgbox "Password cannot contain spaces. Please try again." 8 58
# continue
# fi
# if [[ ${#pw1} -lt 5 ]]; then
# dialog --msgbox "Password must be at least 5 characters long. Please try again." 8 58
# continue
# fi
# pw2=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "PASSWORD VERIFICATION" \
# --insecure --passwordbox "\nVerify Root Password" 10 58 \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ "$pw1" == "$pw2" ]]; then
# PW="-password $pw1"
# printf "%bRoot Password: %b********%b\n" "$VERIFYPW$BOLD$DGN" "$BGN" "$CL"
# return 0
# else
# dialog --msgbox "Passwords do not match. Please try again." 8 58
# continue
# fi
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# done
# }
# set_container_id() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "CONTAINER ID" \
# --inputbox "Set Container ID" 8 58 "$NEXTID" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# CT_ID="${result:-$NEXTID}"
# printf "%bContainer ID: %b%s%b\n" "$CONTAINERID$BOLD$DGN" "$BGN" "$CT_ID" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_hostname() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "HOSTNAME" \
# --inputbox "Set Hostname" 8 58 "$NSAPP" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$result" ]]; then
# HN="$NSAPP"
# else
# HN=$(tr -d ' ' <<<"${result,,}")
# fi
# printf "%bHostname: %b%s%b\n" "$HOSTNAME$BOLD$DGN" "$BGN" "$HN" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_disk_size() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "DISK SIZE" \
# --inputbox "Set Disk Size in GB" 8 58 "$var_disk" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$result" ]]; then
# DISK_SIZE="$var_disk"
# elif [[ "$result" =~ ^[0-9]+$ ]]; then
# DISK_SIZE="$result"
# else
# dialog --msgbox "Disk size must be an integer!" 8 58
# return 2
# fi
# printf "%bDisk Size: %b%s GB%b\n" "$DISKSIZE$BOLD$DGN" "$BGN" "$DISK_SIZE" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_cpu_cores() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "CORE COUNT" \
# --inputbox "Allocate CPU Cores" 8 58 "$var_cpu" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# CORE_COUNT="${result:-$var_cpu}"
# printf "%bCPU Cores: %b%s%b\n" "$CPUCORE$BOLD$DGN" "$BGN" "$CORE_COUNT" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_ram_size() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "RAM" \
# --inputbox "Allocate RAM in MiB" 8 58 "$var_ram" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# RAM_SIZE="${result:-$var_ram}"
# printf "%bRAM Size: %b%s MiB%b\n" "$RAMSIZE$BOLD$DGN" "$BGN" "$RAM_SIZE" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_bridge() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "BRIDGE" \
# --inputbox "Set a Bridge" 8 58 "vmbr0" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# BRG="${result:-vmbr0}"
# printf "%bBridge: %b%s%b\n" "$BRIDGE$BOLD$DGN" "$BGN" "$BRG" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_ip_address() {
# local result exitcode
# while true; do
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "IP ADDRESS" \
# --inputbox "Set a Static IPv4 CIDR Address (/24)" 8 58 "dhcp" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ "$result" == "dhcp" ]]; then
# NET="dhcp"
# printf "%bIP Address: %b%s%b\n" "$NETWORK$BOLD$DGN" "$BGN" "$NET" "$CL"
# return 0
# elif [[ "$result" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}/([0-9]|[1-2][0-9]|3[0-2])$ ]]; then
# NET="$result"
# printf "%bIP Address: %b%s%b\n" "$NETWORK$BOLD$DGN" "$BGN" "$NET" "$CL"
# return 0
# else
# dialog --msgbox "$result is an invalid IPv4 CIDR address. Please enter a valid address or 'dhcp'." 8 58
# continue
# fi
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# done
# }
# set_gateway() {
# local result exitcode
# if [[ "$NET" == "dhcp" ]]; then
# GATE=""
# printf "%bGateway IP Address: %bDefault%b\n" "$GATEWAY$BOLD$DGN" "$BGN" "$CL"
# return 0
# fi
# while true; do
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "Gateway IP" \
# --inputbox "Enter gateway IP address" 8 58 \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$result" ]]; then
# dialog --msgbox "Gateway IP address cannot be empty" 8 58
# continue
# elif [[ "$result" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then
# GATE=",gw=$result"
# printf "%bGateway IP Address: %b%s%b\n" "$GATEWAY$BOLD$DGN" "$BGN" "$result" "$CL"
# return 0
# else
# dialog --msgbox "Invalid IP address format" 8 58
# fi
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# done
# }
# set_apt_cacher() {
# local result exitcode
# if [[ "$var_os" == "alpine" ]]; then
# APT_CACHER=""
# APT_CACHER_IP=""
# return 0
# fi
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "APT-Cacher IP" \
# --inputbox "Set APT-Cacher IP (leave blank for none)" 8 58 \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# APT_CACHER_IP="$result"
# APT_CACHER="${APT_CACHER_IP:+yes}"
# printf "%bAPT-Cacher IP Address: %b%s%b\n" "$NETWORK$BOLD$DGN" "$BGN" "${APT_CACHER_IP:-Default}" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# toggle_ipv6() {
# dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "IPv6" \
# --yesno "Disable IPv6?" 10 58 \
# --extra-button --extra-label "Back" --ok-label "Yes" --cancel-label "No"
# case $? in
# 0) DISABLEIP6="yes" ;;
# 1) DISABLEIP6="no" ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# printf "%bDisable IPv6: %b%s%b\n" "$DISABLEIPV6$BOLD$DGN" "$BGN" "$DISABLEIP6" "$CL"
# return 0
# }
# set_mtu() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "MTU SIZE" \
# --inputbox "Set Interface MTU Size (leave blank for default [1500])" 8 58 "" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$result" ]]; then
# MTU1="Default"
# MTU=""
# else
# MTU1="$result"
# MTU=",mtu=$MTU1"
# fi
# printf "%bInterface MTU Size: %b%s%b\n" "$DEFAULT$BOLD$DGN" "$BGN" "$MTU1" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_dns_search_domain() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "DNS Search Domain" \
# --inputbox "Set a DNS Search Domain (leave blank for HOST)" 8 58 "" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$result" ]]; then
# SX="Host"
# SD=""
# else
# SX="$result"
# SD="-searchdomain=$result"
# fi
# printf "%bDNS Search Domain: %b%s%b\n" "$SEARCH$BOLD$DGN" "$BGN" "$SX" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_dns_server() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "DNS SERVER IP" \
# --inputbox "Set a DNS Server IP (leave blank for HOST)" 8 58 "" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$result" ]]; then
# NX="Host"
# NS=""
# else
# NX="$result"
# NS="-nameserver=$result"
# fi
# printf "%bDNS Server IP Address: %b%s%b\n" "$NETWORK$BOLD$DGN" "$BGN" "$NX" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_mac_address() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "MAC ADDRESS" \
# --inputbox "Set a MAC Address (leave blank for generated MAC)" 8 58 "" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$result" ]]; then
# MAC1="Default"
# MAC=""
# else
# MAC1="$result"
# MAC=",hwaddr=$MAC1"
# fi
# printf "%bMAC Address: %b%s%b\n" "$MACADDRESS$BOLD$DGN" "$BGN" "$MAC1" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_vlan() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "VLAN" \
# --inputbox "Set a VLAN (leave blank for no VLAN)" 8 58 "" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -z "$result" ]]; then
# VLAN1="Default"
# VLAN=""
# else
# VLAN1="$result"
# VLAN=",tag=$VLAN1"
# fi
# printf "%bVlan: %b%s%b\n" "$VLANTAG$BOLD$DGN" "$BGN" "$VLAN1" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_tags() {
# local result exitcode
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "Advanced Tags" \
# --inputbox "Set Custom Tags? [If you remove all, there will be no tags!]" 8 58 "$TAGS" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# if [[ -n "$result" ]]; then
# ADV_TAGS=$(tr -d '[:space:]' <<<"$result")
# TAGS="$ADV_TAGS"
# else
# TAGS=";"
# fi
# printf "%bTags: %b%s%b\n" "$NETWORK$BOLD$DGN" "$BGN" "$TAGS" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }
# set_ssh_access() {
# local result exitcode
# if [[ "$PW" == -password* ]]; then
# dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "SSH ACCESS" \
# --yesno "Enable Root SSH Access?" 10 58 \
# --extra-button --extra-label "Back" --ok-label "Yes" --cancel-label "No"
# exitcode=$?
# case $exitcode in
# 0) SSH="yes" ;;
# 1) SSH="no" ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# else
# SSH="no"
# fi
# printf "%bRoot SSH Access: %b%s%b\n" "$ROOTSSH$BOLD$DGN" "$BGN" "$SSH" "$CL"
# if [[ "$SSH" == "yes" ]]; then
# result=$(dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "SSH Key" \
# --inputbox "SSH Authorized key for root (leave empty for none)" 8 58 "" \
# --extra-button --extra-label "Back" --ok-label "Next" --cancel-label "Exit" 3>&1 1>&2 2>&3)
# exitcode=$?
# case $exitcode in
# 0)
# SSH_AUTHORIZED_KEY="$result"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# else
# SSH_AUTHORIZED_KEY=""
# return 0
# fi
# }
# set_fuse() {
# dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "FUSE Support" \
# --yesno "Enable FUSE (Filesystem in Userspace) support in the container?" 10 58 \
# --extra-button --extra-label "Back" --ok-label "Yes" --cancel-label "No"
# case $? in
# 0) ENABLE_FUSE="yes" ;;
# 1) ENABLE_FUSE="no" ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# printf "%bFUSE (Filesystem in Userspace) Support: %b%s%b\n" "$FUSE$BOLD$DGN" "$BGN" "$ENABLE_FUSE" "$CL"
# return 0
# }
# set_verbose() {
# dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "VERBOSE MODE" \
# --yesno "Enable Verbose Mode?" 10 58 \
# --extra-button --extra-label "Back" --ok-label "Yes" --cancel-label "No"
# case $? in
# 0) VERB="yes" ;;
# 1) VERB="no" ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# printf "%bVerbose Mode: %b%s%b\n" "$SEARCH$BOLD$DGN" "$BGN" "$VERB" "$CL"
# return 0
# }
# confirm_creation() {
# dialog --backtitle "[dev] Proxmox VE Helper Scripts" \
# --title "ADVANCED SETTINGS COMPLETE" \
# --yesno "Ready to create ${APP} LXC?" 10 58 \
# --extra-button --extra-label "Back" --ok-label "Yes" --cancel-label "No"
# case $? in
# 0)
# printf "%bCreating a %s LXC using the above advanced settings%b\n" "$CREATING$BOLD$RD" "$APP" "$CL"
# return 0
# ;;
# 3) return 2 ;;
# *) return 1 ;;
# esac
# }