Enhance config_file function to improve APT-Cacher IP, MTU, DNS settings, VLAN, Tags, SSH access, and Verbose mode handling with user prompts and validation
This commit is contained in:
parent
a0ffccfb5a
commit
741e2942db
134
misc/build.func
134
misc/build.func
@ -1089,8 +1089,11 @@ config_file() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$var_os" == "alpine" ]; then
|
||||||
if [[ -n "$APT_CACHER_IP" ]]; then
|
APT_CACHER=""
|
||||||
|
APT_CACHER_IP=""
|
||||||
|
else
|
||||||
|
if [[ -n "${APT_CACHER_IP-}" ]]; then
|
||||||
if [[ "$APT_CACHER_IP" =~ $ip_regex ]]; then
|
if [[ "$APT_CACHER_IP" =~ $ip_regex ]]; then
|
||||||
APT_CACHER="yes"
|
APT_CACHER="yes"
|
||||||
echo -e "${NETWORK}${BOLD}${DGN}APT-CACHER IP Address: ${BGN}$APT_CACHER_IP${CL}"
|
echo -e "${NETWORK}${BOLD}${DGN}APT-CACHER IP Address: ${BGN}$APT_CACHER_IP${CL}"
|
||||||
@ -1098,18 +1101,30 @@ config_file() {
|
|||||||
msg_error "Invalid IP Address format for APT-Cacher. Needs to be 0.0.0.0, was ${APT_CACHER_IP}"
|
msg_error "Invalid IP Address format for APT-Cacher. Needs to be 0.0.0.0, was ${APT_CACHER_IP}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
if APT_CACHER_IP=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set APT-Cacher IP (leave blank for none)" 8 58 --title "APT-Cacher IP" 3>&1 1>&2 2>&3); then
|
||||||
|
APT_CACHER="${APT_CACHER_IP:+yes}"
|
||||||
|
echo -e "${NETWORK}${BOLD}${DGN}APT-Cacher IP Address: ${BGN}${APT_CACHER_IP:-Default}${CL}"
|
||||||
|
else
|
||||||
|
exit_script
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$DISABLEIP6" == "yes" ]]; then
|
if [[ "${DISABLEIP6-}" == "yes" ]]; then
|
||||||
echo -e "${DISABLEIPV6}${BOLD}${DGN}Disable IPv6: ${BGN}Yes${CL}"
|
echo -e "${DISABLEIPV6}${BOLD}${DGN}Disable IPv6: ${BGN}Yes${CL}"
|
||||||
elif [[ "$DISABLEIP6" == "no" ]]; then
|
elif [[ "${DISABLEIP6-}" == "no" ]]; then
|
||||||
echo -e "${DISABLEIPV6}${BOLD}${DGN}Disable IPv6: ${BGN}No${CL}"
|
echo -e "${DISABLEIPV6}${BOLD}${DGN}Disable IPv6: ${BGN}No${CL}"
|
||||||
else
|
else
|
||||||
msg_error "Disable IPv6 needs to be 'yes' or 'no'"
|
if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "IPv6" --yesno "Disable IPv6?" 10 58); then
|
||||||
exit
|
DISABLEIP6="yes"
|
||||||
|
else
|
||||||
|
DISABLEIP6="no"
|
||||||
|
fi
|
||||||
|
echo -e "${DISABLEIPV6}${BOLD}${DGN}Disable IPv6: ${BGN}$DISABLEIP6${CL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$MTU" ]]; then
|
if [[ -n "${MTU-}" ]]; then
|
||||||
if [[ "$MTU" =~ ^-?[0-9]+$ ]]; then
|
if [[ "$MTU" =~ ^-?[0-9]+$ ]]; then
|
||||||
echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU${CL}"
|
echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU${CL}"
|
||||||
MTU=",mtu=$MTU"
|
MTU=",mtu=$MTU"
|
||||||
@ -1118,20 +1133,38 @@ config_file() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
if MTU1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Interface MTU Size (leave blank for default [The MTU of your selected vmbr, default is 1500])" 8 58 --title "MTU SIZE" 3>&1 1>&2 2>&3); then
|
||||||
|
if [ -z "$MTU1" ]; then
|
||||||
|
MTU1="Default"
|
||||||
MTU=""
|
MTU=""
|
||||||
echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}Default${CL}"
|
else
|
||||||
|
MTU=",mtu=$MTU1"
|
||||||
|
fi
|
||||||
|
echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}"
|
||||||
|
else
|
||||||
|
exit_script
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$SD" ]]; then
|
if [[ -n "${SD-}" ]]; then
|
||||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD${CL}"
|
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD${CL}"
|
||||||
SD="-searchdomain=$SD"
|
SD="-searchdomain=$SD"
|
||||||
else
|
else
|
||||||
|
if SD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a DNS Search Domain (leave blank for HOST)" 8 58 --title "DNS Search Domain" 3>&1 1>&2 2>&3); then
|
||||||
|
if [ -z "$SD" ]; then
|
||||||
|
SX=Host
|
||||||
SD=""
|
SD=""
|
||||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}HOST${CL}"
|
else
|
||||||
|
SX=$SD
|
||||||
|
SD="-searchdomain=$SD"
|
||||||
|
fi
|
||||||
|
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SX${CL}"
|
||||||
|
else
|
||||||
|
exit_script
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$NS" ]]; then
|
if [[ -n "${NS-}" ]]; then
|
||||||
if [[ "$NS" =~ $ip_regex ]]; then
|
if [[ "$NS" =~ $ip_regex ]]; then
|
||||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS${CL}"
|
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS${CL}"
|
||||||
NS="-nameserver=$NS"
|
NS="-nameserver=$NS"
|
||||||
@ -1140,11 +1173,20 @@ config_file() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
if NX=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a DNS Server IP (leave blank for HOST)" 8 58 --title "DNS SERVER IP" 3>&1 1>&2 2>&3); then
|
||||||
|
if [ -z "$NX" ]; then
|
||||||
|
NX=Host
|
||||||
NS=""
|
NS=""
|
||||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}HOST${CL}"
|
else
|
||||||
|
NS="-nameserver=$NX"
|
||||||
|
fi
|
||||||
|
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NX${CL}"
|
||||||
|
else
|
||||||
|
exit_script
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$MAC" ]]; then
|
if [[ -n "${MAC}" ]]; then
|
||||||
if [[ "$MAC" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
|
if [[ "$MAC" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
|
||||||
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}"
|
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}"
|
||||||
MAC=",hwaddr=$MAC"
|
MAC=",hwaddr=$MAC"
|
||||||
@ -1153,10 +1195,20 @@ config_file() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
msg_error "MAC Address cannot be empty"
|
if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address(leave blank for generated MAC)" 8 58 --title "MAC ADDRESS" 3>&1 1>&2 2>&3); then
|
||||||
|
if [ -z "$MAC1" ]; then
|
||||||
|
MAC1="Default"
|
||||||
|
MAC=""
|
||||||
|
else
|
||||||
|
MAC=",hwaddr=$MAC1"
|
||||||
|
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC1${CL}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
exit_script
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$VLAN" ]]; then
|
if [[ -n "${VLAN-}" ]]; then
|
||||||
if [[ "$VLAN" =~ ^-?[0-9]+$ ]]; then
|
if [[ "$VLAN" =~ ^-?[0-9]+$ ]]; then
|
||||||
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN${CL}"
|
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN${CL}"
|
||||||
VLAN=",tag=$VLAN"
|
VLAN=",tag=$VLAN"
|
||||||
@ -1164,13 +1216,37 @@ config_file() {
|
|||||||
msg_error "VLAN must be an integer, was ${VLAN}"
|
msg_error "VLAN must be an integer, was ${VLAN}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
if VLAN1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Vlan(leave blank for no VLAN)" 8 58 --title "VLAN" 3>&1 1>&2 2>&3); then
|
||||||
|
if [ -z "$VLAN1" ]; then
|
||||||
|
VLAN1="Default"
|
||||||
|
VLAN=""
|
||||||
|
else
|
||||||
|
VLAN=",tag=$VLAN1"
|
||||||
|
fi
|
||||||
|
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN1${CL}"
|
||||||
|
else
|
||||||
|
exit_script
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$TAGS" ]]; then
|
if [[ -n "${TAGS-}" ]]; then
|
||||||
echo -e "${NETWORK}${BOLD}${DGN}Tags: ${BGN}$TAGS${CL}"
|
echo -e "${NETWORK}${BOLD}${DGN}Tags: ${BGN}$TAGS${CL}"
|
||||||
|
else
|
||||||
|
if ADV_TAGS=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Custom Tags?[If you remove all, there will be no tags!]" 8 58 "${TAGS}" --title "Advanced Tags" 3>&1 1>&2 2>&3); then
|
||||||
|
if [ -n "${ADV_TAGS}" ]; then
|
||||||
|
ADV_TAGS=$(echo "$ADV_TAGS" | tr -d '[:space:]')
|
||||||
|
TAGS="${ADV_TAGS}"
|
||||||
|
else
|
||||||
|
TAGS=";"
|
||||||
|
fi
|
||||||
|
echo -e "${NETWORK}${BOLD}${DGN}Tags: ${BGN}$TAGS${CL}"
|
||||||
|
else
|
||||||
|
exit_script
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$SSH" ]]; then
|
if [[ -n "${SSH}" ]]; then
|
||||||
if [[ "$SSH" == "yes" ]]; then
|
if [[ "$SSH" == "yes" ]]; then
|
||||||
echo -e "${ROOTSSH}${BOLD}${DGN}Root SSH Access: ${BGN}$SSH${CL}"
|
echo -e "${ROOTSSH}${BOLD}${DGN}Root SSH Access: ${BGN}$SSH${CL}"
|
||||||
if [[ ! -z "$SSH_AUTHORIZED_KEY" ]]; then
|
if [[ ! -z "$SSH_AUTHORIZED_KEY" ]]; then
|
||||||
@ -1184,10 +1260,23 @@ config_file() {
|
|||||||
msg_error "SSH needs to be 'yes' or 'no', was ${SSH}"
|
msg_error "SSH needs to be 'yes' or 'no', was ${SSH}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
SSH_AUTHORIZED_KEY="$(whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --inputbox "SSH Authorized key for root (leave empty for none)" 8 58 --title "SSH Key" 3>&1 1>&2 2>&3)"
|
||||||
|
if [[ -z "${SSH_AUTHORIZED_KEY}" ]]; then
|
||||||
|
SSH_AUTHORIZED_KEY=""
|
||||||
|
fi
|
||||||
|
if [[ "$PW" == -password* || -n "$SSH_AUTHORIZED_KEY" ]]; then
|
||||||
|
if (whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --defaultno --title "SSH ACCESS" --yesno "Enable Root SSH Access?" 10 58); then
|
||||||
|
SSH="yes"
|
||||||
|
else
|
||||||
|
SSH="no"
|
||||||
|
fi
|
||||||
|
echo -e "${ROOTSSH}${BOLD}${DGN}Root SSH Access: ${BGN}$SSH${CL}"
|
||||||
else
|
else
|
||||||
SSH="no"
|
SSH="no"
|
||||||
echo -e "${ROOTSSH}${BOLD}${DGN}Root SSH Access: ${BGN}$SSH${CL}"
|
echo -e "${ROOTSSH}${BOLD}${DGN}Root SSH Access: ${BGN}$SSH${CL}"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -n "$VERBOSE" ]]; then
|
if [[ -n "$VERBOSE" ]]; then
|
||||||
if [[ "$VERBOSE" == "yes" ]]; then
|
if [[ "$VERBOSE" == "yes" ]]; then
|
||||||
@ -1199,12 +1288,17 @@ config_file() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
VERBOSE="no"
|
if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58); then
|
||||||
echo -e "${SEARCH}${BOLD}${DGN}Verbose Mode: ${BGN}No${CL}"
|
VERB="yes"
|
||||||
|
else
|
||||||
|
VERB="no"
|
||||||
|
fi
|
||||||
|
echo -e "${SEARCH}${BOLD}${DGN}Verbose Mode: ${BGN}$VERB${CL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS WITH CONFIG FILE COMPLETE" --yesno "Ready to create ${APP} LXC?" 10 58); then
|
if (whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS WITH CONFIG FILE COMPLETE" --yesno "Ready to create ${APP} LXC?" 10 58); then
|
||||||
echo -e "${CREATING}${BOLD}${RD}Creating a ${APP} LXC using the above settings${CL}"
|
echo -e "${CREATING}${BOLD}${RD}Creating a ${APP} LXC using the above settings${CL}"
|
||||||
|
write_config
|
||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
header_info
|
header_info
|
||||||
|
Loading…
x
Reference in New Issue
Block a user