Strip SD and NS prefixes before writing to config file (#6356)
This commit is contained in:
parent
27e095e1dd
commit
4bd360d31b
@ -250,6 +250,17 @@ write_config() {
|
|||||||
if whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "Write configfile" --yesno "Do you want to write the selections to a config file?" 10 60; then
|
if whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "Write configfile" --yesno "Do you want to write the selections to a config file?" 10 60; then
|
||||||
FILEPATH="/opt/community-scripts/${NSAPP}.conf"
|
FILEPATH="/opt/community-scripts/${NSAPP}.conf"
|
||||||
[[ "$GATE" =~ ",gw=" ]] && local GATE="${GATE##,gw=}"
|
[[ "$GATE" =~ ",gw=" ]] && local GATE="${GATE##,gw=}"
|
||||||
|
|
||||||
|
# Strip prefixes from parameters for config file storage
|
||||||
|
local SD_VALUE="${SD}"
|
||||||
|
local NS_VALUE="${NS}"
|
||||||
|
local MAC_VALUE="${MAC}"
|
||||||
|
local VLAN_VALUE="${VLAN}"
|
||||||
|
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
|
||||||
|
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
|
||||||
|
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
|
||||||
|
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
|
||||||
|
|
||||||
if [[ ! -f $FILEPATH ]]; then
|
if [[ ! -f $FILEPATH ]]; then
|
||||||
cat <<EOF >"$FILEPATH"
|
cat <<EOF >"$FILEPATH"
|
||||||
# ${NSAPP} Configuration File
|
# ${NSAPP} Configuration File
|
||||||
@ -272,10 +283,10 @@ IPV6_METHOD="${IPV6_METHOD:-none}"
|
|||||||
GATE="${GATE:-none}"
|
GATE="${GATE:-none}"
|
||||||
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
||||||
MTU="${MTU:-1500}"
|
MTU="${MTU:-1500}"
|
||||||
SD="${SD:-none}"
|
SD="${SD_VALUE:-none}"
|
||||||
NS="${NS:-none}"
|
NS="${NS_VALUE:-none}"
|
||||||
MAC="${MAC:-none}"
|
MAC="${MAC_VALUE:-none}"
|
||||||
VLAN="${VLAN:-none}"
|
VLAN="${VLAN_VALUE:-none}"
|
||||||
SSH="${SSH}"
|
SSH="${SSH}"
|
||||||
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
||||||
TAGS="${TAGS:-none}"
|
TAGS="${TAGS:-none}"
|
||||||
@ -310,10 +321,10 @@ IPV6_METHOD="${IPV6_METHOD:-none}"
|
|||||||
GATE="${GATE:-none}"
|
GATE="${GATE:-none}"
|
||||||
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
||||||
MTU="${MTU:-1500}"
|
MTU="${MTU:-1500}"
|
||||||
SD="${SD:-none}"
|
SD="${SD_VALUE:-none}"
|
||||||
NS="${NS:-none}"
|
NS="${NS_VALUE:-none}"
|
||||||
MAC="${MAC:-none}"
|
MAC="${MAC_VALUE:-none}"
|
||||||
VLAN="${VLAN:-none}"
|
VLAN="${VLAN_VALUE:-none}"
|
||||||
SSH="${SSH}"
|
SSH="${SSH}"
|
||||||
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
||||||
TAGS="${TAGS:-none}"
|
TAGS="${TAGS:-none}"
|
||||||
@ -807,7 +818,36 @@ advanced_settings() {
|
|||||||
|
|
||||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create ${APP} LXC?" 10 58); then
|
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create ${APP} LXC?" 10 58); then
|
||||||
echo -e "${CREATING}${BOLD}${RD}Creating a ${APP} LXC using the above advanced settings${CL}"
|
echo -e "${CREATING}${BOLD}${RD}Creating a ${APP} LXC using the above advanced settings${CL}"
|
||||||
|
|
||||||
|
# Strip prefixes from DNS parameters for config file storage
|
||||||
|
local SD_VALUE="$SD"
|
||||||
|
local NS_VALUE="$NS"
|
||||||
|
local MAC_VALUE="$MAC"
|
||||||
|
local VLAN_VALUE="$VLAN"
|
||||||
|
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
|
||||||
|
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
|
||||||
|
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
|
||||||
|
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
|
||||||
|
|
||||||
|
# Temporarily store original values
|
||||||
|
local SD_ORIG="$SD"
|
||||||
|
local NS_ORIG="$NS"
|
||||||
|
local MAC_ORIG="$MAC"
|
||||||
|
local VLAN_ORIG="$VLAN"
|
||||||
|
|
||||||
|
# Set clean values for config file writing
|
||||||
|
SD="$SD_VALUE"
|
||||||
|
NS="$NS_VALUE"
|
||||||
|
MAC="$MAC_VALUE"
|
||||||
|
VLAN="$VLAN_VALUE"
|
||||||
|
|
||||||
write_config
|
write_config
|
||||||
|
|
||||||
|
# Restore original formatted values for container creation
|
||||||
|
SD="$SD_ORIG"
|
||||||
|
NS="$NS_ORIG"
|
||||||
|
MAC="$MAC_ORIG"
|
||||||
|
VLAN="$VLAN_ORIG"
|
||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
header_info
|
header_info
|
||||||
|
@ -469,8 +469,11 @@ config_file() {
|
|||||||
SD=""
|
SD=""
|
||||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}Host${CL}"
|
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}Host${CL}"
|
||||||
else
|
else
|
||||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD${CL}"
|
# Strip prefix if present for config file storage
|
||||||
SD="-searchdomain=$SD"
|
local SD_VALUE="$SD"
|
||||||
|
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
|
||||||
|
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD_VALUE${CL}"
|
||||||
|
SD="-searchdomain=$SD_VALUE"
|
||||||
fi
|
fi
|
||||||
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 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
|
||||||
@ -492,11 +495,14 @@ config_file() {
|
|||||||
NS=""
|
NS=""
|
||||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}Host${CL}"
|
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}Host${CL}"
|
||||||
else
|
else
|
||||||
if [[ "$NS" =~ $ip_regex ]]; then
|
# Strip prefix if present for config file storage
|
||||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS${CL}"
|
local NS_VALUE="$NS"
|
||||||
NS="-nameserver=$NS"
|
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
|
||||||
|
if [[ "$NS_VALUE" =~ $ip_regex ]]; then
|
||||||
|
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS_VALUE${CL}"
|
||||||
|
NS="-nameserver=$NS_VALUE"
|
||||||
else
|
else
|
||||||
msg_error "Invalid IP Address format for DNS Server. Needs to be 0.0.0.0, was ${NS}"
|
msg_error "Invalid IP Address format for DNS Server. Needs to be 0.0.0.0, was ${NS_VALUE}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -519,11 +525,14 @@ config_file() {
|
|||||||
MAC=""
|
MAC=""
|
||||||
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}Host${CL}"
|
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}Host${CL}"
|
||||||
else
|
else
|
||||||
if [[ "$MAC" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
|
# Strip prefix if present for config file storage
|
||||||
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}"
|
local MAC_VALUE="$MAC"
|
||||||
MAC=",hwaddr=$MAC"
|
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
|
||||||
|
if [[ "$MAC_VALUE" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
|
||||||
|
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC_VALUE${CL}"
|
||||||
|
MAC=",hwaddr=$MAC_VALUE"
|
||||||
else
|
else
|
||||||
msg_error "MAC Address must be in the format xx:xx:xx:xx:xx:xx, was ${MAC}"
|
msg_error "MAC Address must be in the format xx:xx:xx:xx:xx:xx, was ${MAC_VALUE}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -546,11 +555,14 @@ config_file() {
|
|||||||
VLAN=""
|
VLAN=""
|
||||||
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}Host${CL}"
|
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}Host${CL}"
|
||||||
else
|
else
|
||||||
if [[ "$VLAN" =~ ^-?[0-9]+$ ]]; then
|
# Strip prefix if present for config file storage
|
||||||
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN${CL}"
|
local VLAN_VALUE="$VLAN"
|
||||||
VLAN=",tag=$VLAN"
|
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
|
||||||
|
if [[ "$VLAN_VALUE" =~ ^-?[0-9]+$ ]]; then
|
||||||
|
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN_VALUE${CL}"
|
||||||
|
VLAN=",tag=$VLAN_VALUE"
|
||||||
else
|
else
|
||||||
msg_error "VLAN must be an integer, was ${VLAN}"
|
msg_error "VLAN must be an integer, was ${VLAN_VALUE}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user