@ -6,8 +6,8 @@
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
function header_info {
clear
clear
cat <<"EOF"
cat <<"EOF"
___ __ __ _
___ __ __ _
/ | __________/ /_ / / ( _) ___ __ ___ __
/ | __________/ /_ / / ( _) ___ __ ___ __
/ /| | / ___/ ___/ __ \ / / / / __ \/ / / / | /_/
/ /| | / ___/ ___/ __ \ / / / / __ \/ / / / | /_/
@ -42,84 +42,84 @@ CROSS="${RD}✗${CL}"
set -Eeuo pipefail
set -Eeuo pipefail
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
function error_handler( ) {
function error_handler( ) {
local exit_code = " $? "
local exit_code = " $? "
local line_number = " $1 "
local line_number = " $1 "
local command = " $2 "
local command = " $2 "
local error_message = " ${ RD } [ERROR] ${ CL } in line ${ RD } $line_number ${ CL } : exit code ${ RD } $exit_code ${ CL } : while executing command ${ YW } $command ${ CL } "
local error_message = " ${ RD } [ERROR] ${ CL } in line ${ RD } $line_number ${ CL } : exit code ${ RD } $exit_code ${ CL } : while executing command ${ YW } $command ${ CL } "
echo -e " \n $error_message \n "
echo -e " \n $error_message \n "
}
}
function msg_info( ) {
function msg_info( ) {
local msg = " $1 "
local msg = " $1 "
echo -ne " ${ HOLD } ${ YW } ${ msg } ... "
echo -ne " ${ HOLD } ${ YW } ${ msg } ... "
}
}
function msg_ok( ) {
function msg_ok( ) {
local msg = " $1 "
local msg = " $1 "
echo -e " ${ BFR } ${ CM } ${ GN } ${ msg } ${ CL } "
echo -e " ${ BFR } ${ CM } ${ GN } ${ msg } ${ CL } "
}
}
function msg_error( ) {
function msg_error( ) {
local msg = " $1 "
local msg = " $1 "
echo -e " ${ BFR } ${ CROSS } ${ RD } ${ msg } ${ CL } "
echo -e " ${ BFR } ${ CROSS } ${ RD } ${ msg } ${ CL } "
}
}
function PVE_CHECK( ) {
function PVE_CHECK( ) {
if ! pveversion | grep -Eq "pve-manager/(7\.[2-9]|8\.[0-9])" ; then
if ! pveversion | grep -Eq "pve-manager/(7\.[2-9]|8\.[0-9])" ; then
echo -e " ${ CROSS } This version of Proxmox Virtual Environment is not supported "
echo -e " ${ CROSS } This version of Proxmox Virtual Environment is not supported "
echo -e "Requires PVE Version 7.2 or higher"
echo -e "Requires PVE Version 7.2 or higher"
echo -e "Exiting..."
echo -e "Exiting..."
sleep 2
sleep 2
exit
exit
fi
fi
}
}
function ARCH_CHECK( ) {
function ARCH_CHECK( ) {
if [ " $( dpkg --print-architecture) " != "amd64" ] ; then
if [ " $( dpkg --print-architecture) " != "amd64" ] ; then
echo -e " \n ${ CROSS } This script will not work with PiMox! \n "
echo -e " \n ${ CROSS } This script will not work with PiMox! \n "
echo -e "Exiting..."
echo -e "Exiting..."
sleep 2
sleep 2
exit
exit
fi
fi
}
}
function default_settings( ) {
function default_settings( ) {
echo -e " ${ DGN } Using Container Type: ${ BGN } Unprivileged ${ CL } ${ RD } NO DEVICE PASSTHROUGH ${ CL } "
echo -e " ${ DGN } Using Container Type: ${ BGN } Unprivileged ${ CL } ${ RD } NO DEVICE PASSTHROUGH ${ CL } "
CT_TYPE = "1"
CT_TYPE = "1"
echo -e " ${ DGN } Using Root Password: ${ BGN } archlinux ${ CL } "
echo -e " ${ DGN } Using Root Password: ${ BGN } archlinux ${ CL } "
PW = "-password archlinux"
PW = "-password archlinux"
echo -e " ${ DGN } Using Container ID: ${ BGN } $NEXTID ${ CL } "
echo -e " ${ DGN } Using Container ID: ${ BGN } $NEXTID ${ CL } "
CT_ID = $NEXTID
CT_ID = $NEXTID
echo -e " ${ DGN } Using Hostname: ${ BGN } $NSAPP ${ CL } "
echo -e " ${ DGN } Using Hostname: ${ BGN } $NSAPP ${ CL } "
HN = $NSAPP
HN = $NSAPP
echo -e " ${ DGN } Using Disk Size: ${ BGN } $var_disk ${ CL } ${ DGN } GB ${ CL } "
echo -e " ${ DGN } Using Disk Size: ${ BGN } $var_disk ${ CL } ${ DGN } GB ${ CL } "
DISK_SIZE = " $var_disk "
DISK_SIZE = " $var_disk "
echo -e " ${ DGN } Allocated Cores ${ BGN } $var_cpu ${ CL } "
echo -e " ${ DGN } Allocated Cores ${ BGN } $var_cpu ${ CL } "
CORE_COUNT = " $var_cpu "
CORE_COUNT = " $var_cpu "
echo -e " ${ DGN } Allocated Ram ${ BGN } $var_ram ${ CL } "
echo -e " ${ DGN } Allocated Ram ${ BGN } $var_ram ${ CL } "
RAM_SIZE = " $var_ram "
RAM_SIZE = " $var_ram "
echo -e " ${ DGN } Using Bridge: ${ BGN } vmbr0 ${ CL } "
echo -e " ${ DGN } Using Bridge: ${ BGN } vmbr0 ${ CL } "
BRG = "vmbr0"
BRG = "vmbr0"
echo -e " ${ DGN } Using Static IP Address: ${ BGN } dhcp ${ CL } "
echo -e " ${ DGN } Using Static IP Address: ${ BGN } dhcp ${ CL } "
NET = "dhcp"
NET = "dhcp"
echo -e " ${ DGN } Using Gateway Address: ${ BGN } Default ${ CL } "
echo -e " ${ DGN } Using Gateway Address: ${ BGN } Default ${ CL } "
GATE = ""
GATE = ""
echo -e " ${ DGN } Disable IPv6: ${ BGN } No ${ CL } "
echo -e " ${ DGN } Disable IPv6: ${ BGN } No ${ CL } "
DISABLEIP6 = "no"
DISABLEIP6 = "no"
echo -e " ${ DGN } Using Interface MTU Size: ${ BGN } Default ${ CL } "
echo -e " ${ DGN } Using Interface MTU Size: ${ BGN } Default ${ CL } "
MTU = ""
MTU = ""
echo -e " ${ DGN } Using DNS Search Domain: ${ BGN } Host ${ CL } "
echo -e " ${ DGN } Using DNS Search Domain: ${ BGN } Host ${ CL } "
SD = ""
SD = ""
echo -e " ${ DGN } Using DNS Server Address: ${ BGN } Host ${ CL } "
echo -e " ${ DGN } Using DNS Server Address: ${ BGN } Host ${ CL } "
NS = ""
NS = ""
echo -e " ${ DGN } Using MAC Address: ${ BGN } Default ${ CL } "
echo -e " ${ DGN } Using MAC Address: ${ BGN } Default ${ CL } "
MAC = ""
MAC = ""
echo -e " ${ DGN } Using VLAN Tag: ${ BGN } Default ${ CL } "
echo -e " ${ DGN } Using VLAN Tag: ${ BGN } Default ${ CL } "
VLAN = ""
VLAN = ""
echo -e " ${ DGN } Enable Root SSH Access: ${ BGN } No ${ CL } "
echo -e " ${ DGN } Enable Root SSH Access: ${ BGN } No ${ CL } "
SSH = "no"
SSH = "no"
echo -e " ${ DGN } Enable Verbose Mode: ${ BGN } No ${ CL } "
echo -e " ${ DGN } Enable Verbose Mode: ${ BGN } No ${ CL } "
VERB = "no"
VERB = "no"
echo -e " ${ BL } Creating a ${ APP } LXC using the above default settings ${ CL } "
echo -e " ${ BL } Creating a ${ APP } LXC using the above default settings ${ CL } "
}
}
function exit-script( ) {
function exit-script( ) {
@ -129,260 +129,260 @@ function exit-script() {
}
}
function advanced_settings( ) {
function advanced_settings( ) {
if CT_TYPE = $( whiptail --title "CONTAINER TYPE" --radiolist "Choose Type" 10 58 2 \
if CT_TYPE = $( whiptail --title "CONTAINER TYPE" --radiolist "Choose Type" 10 58 2 \
"1" "Unprivileged" ON \
"1" "Unprivileged" ON \
"0" "Privileged" OFF \
"0" "Privileged" OFF \
3>& 1 1>& 2 2>& 3) ; then
3>& 1 1>& 2 2>& 3) ; then
echo -e " ${ DGN } Using Container Type: ${ BGN } $CT_TYPE ${ CL } "
echo -e " ${ DGN } Using Container Type: ${ BGN } $CT_TYPE ${ CL } "
else
exit-script
fi
if PW1 = $( whiptail --inputbox "\nSet Root Password (needed for root ssh access)" 9 58 --title "PASSWORD(leave blank for automatic login)" 3>& 1 1>& 2 2>& 3) ; then
if [ -z $PW1 ] ; then
PW1 = "Automatic Login"
PW = " "
else
else
PW = " -password $PW1 "
exit-script
fi
fi
echo -e " ${ DGN } Using Root Password: ${ BGN } $PW1 ${ CL } "
else
exit-script
fi
if CT_ID = $( whiptail --inputbox "Set Container ID" 8 58 $NEXTID --title "CONTAINER ID" 3>& 1 1>& 2 2>& 3) ; then
if PW1 = $( whiptail --inputbox "\nSet Root Password (needed for root ssh access)" 9 58 --title "PASSWORD(leave blank for automatic login)" 3>& 1 1>& 2 2>& 3) ; then
if [ -z " $CT_ID " ] ; then
if [ -z $PW1 ] ; then
CT_ID = " $NEXTID "
PW1 = "Automatic Login"
echo -e " ${ DGN } Using Container ID: ${ BGN } $CT_ID ${ CL } "
PW = " "
else
PW = " -password $PW1 "
fi
echo -e " ${ DGN } Using Root Password: ${ BGN } $PW1 ${ CL } "
else
else
echo -e " ${ DGN } Container ID: ${ BGN } $CT_ID ${ CL } "
exit-script
fi
fi
else
exit
fi
if CT_NAME = $( whiptail --inputbox "Set Hostname" 8 58 $NSAPP --title "HOSTNAME" 3>& 1 1>& 2 2>& 3) ; then
if CT_ID = $( whiptail --inputbox "Set Container ID" 8 58 $NEXTID --title "CONTAINER ID" 3>& 1 1>& 2 2>& 3) ; then
if [ -z " $CT_NAME " ] ; then
if [ -z " $CT_ID " ] ; then
HN = " $NSAPP "
CT_ID = " $NEXTID "
echo -e " ${ DGN } Using Container ID: ${ BGN } $CT_ID ${ CL } "
else
echo -e " ${ DGN } Container ID: ${ BGN } $CT_ID ${ CL } "
fi
else
else
HN = $( echo ${ CT_NAME ,, } | tr -d ' ' )
exit
fi
fi
echo -e " ${ DGN } Using Hostname: ${ BGN } $HN ${ CL } "
else
exit-script
fi
if DISK_SIZE = $( whiptail --inputbox "Set Disk Size in GB" 8 58 $var_disk --title "DISK SIZE" 3>& 1 1>& 2 2>& 3) ; then
if CT_NAME = $( whiptail --inputbox "Set Hostname" 8 58 $NSAPP --title "HOSTNAME" 3>& 1 1>& 2 2>& 3) ; then
if [ -z " $DISK_SIZE " ] ; then
if [ -z " $CT_NAME " ] ; then
DISK_SIZE = " $var_disk "
HN = " $NSAPP "
echo -e " ${ DGN } Using Disk Size: ${ BGN } $DISK_SIZE ${ CL } "
else
else
if ! [ [ $DISK_SIZE = ~ $INTEGER ] ] ; then
HN = $( echo ${ CT_NAME ,, } | tr -d ' ' )
echo -e " ${ RD } ⚠ DISK SIZE MUST BE AN INTEGER NUMBER! ${ CL } "
advanced_settings
fi
fi
echo -e " ${ DGN } Using Disk Size: ${ BGN } $DISK_SIZE ${ CL } "
echo -e " ${ DGN } Using Hostname: ${ BGN } $HN ${ CL } "
else
exit-script
fi
fi
else
exit-script
fi
if CORE_COUNT = $( whiptail --inputbox "Allocate CPU Cores" 8 58 $var_cpu --title "CORE COUNT" 3>& 1 1>& 2 2>& 3) ; then
if DISK_SIZE = $( whiptail --inputbox "Set Disk Size in GB" 8 58 $var_disk --title "DISK SIZE" 3>& 1 1>& 2 2>& 3) ; then
if [ -z " $CORE_COUNT " ] ; then
if [ -z " $DISK_SIZE " ] ; then
CORE_COUNT = " $var_cpu "
DISK_SIZE = " $var_disk "
echo -e " ${ DGN } Allocated Cores: ${ BGN } $CORE_COUNT ${ CL } "
echo -e " ${ DGN } Using Disk Size: ${ BGN } $DISK_SIZE ${ CL } "
else
if ! [ [ $DISK_SIZE = ~ $INTEGER ] ] ; then
echo -e " ${ RD } ⚠ DISK SIZE MUST BE AN INTEGER NUMBER! ${ CL } "
advanced_settings
fi
echo -e " ${ DGN } Using Disk Size: ${ BGN } $DISK_SIZE ${ CL } "
fi
else
else
echo -e " ${ DGN } Allocated Cores: ${ BGN } $CORE_COUNT ${ CL } "
exit-script
fi
fi
else
exit-script
fi
if RAM_SIZE = $( whiptail --inputbox "Allocate RAM in MiB" 8 58 $var_ram --title "RAM" 3>& 1 1>& 2 2>& 3) ; then
if CORE_COUNT = $( whiptail --inputbox "Allocate CPU Cores" 8 58 $var_cpu --title "CORE COUNT" 3>& 1 1>& 2 2>& 3) ; then
if [ -z " $RAM_SIZE " ] ; then
if [ -z " $CORE_COUNT " ] ; then
RAM_SIZE = " $var_ram "
CORE_COUNT = " $var_cpu "
echo -e " ${ DGN } Allocated RAM: ${ BGN } $RAM_SIZE ${ CL } "
echo -e " ${ DGN } Allocated Cores: ${ BGN } $CORE_COUNT ${ CL } "
else
echo -e " ${ DGN } Allocated Cores: ${ BGN } $CORE_COUNT ${ CL } "
fi
else
else
echo -e " ${ DGN } Allocated RAM: ${ BGN } $RAM_SIZE ${ CL } "
exit-script
fi
fi
else
exit-script
fi
if BRG = $( whiptail --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" 3>& 1 1>& 2 2>& 3) ; then
if RAM_SIZE = $( whiptail --inputbox "Allocate RAM in MiB" 8 58 $var_ram --title "RAM" 3>& 1 1>& 2 2>& 3) ; then
if [ -z " $BRG " ] ; then
if [ -z " $RAM_SIZE " ] ; then
BRG = "vmbr0"
RAM_SIZE = " $var_ram "
echo -e " ${ DGN } Using Bridge: ${ BGN } $BRG ${ CL } "
echo -e " ${ DGN } Allocated RAM: ${ BGN } $RAM_SIZE ${ CL } "
else
echo -e " ${ DGN } Allocated RAM: ${ BGN } $RAM_SIZE ${ CL } "
fi
else
else
echo -e " ${ DGN } Using Bridge: ${ BGN } $BRG ${ CL } "
exit-script
fi
fi
else
exit-script
fi
if NET = $( whiptail --inputbox "Set a Static IPv4 CIDR Address(/24)" 8 58 dhcp --title "IP ADDRESS" 3>& 1 1>& 2 2>& 3) ; then
if BRG = $( whiptail --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" 3>& 1 1>& 2 2>& 3) ; then
if [ -z $NET ] ; then
if [ -z " $BRG " ] ; then
NET = "dhcp"
BRG = "vmbr0"
echo -e " ${ DGN } Using IP Address: ${ BGN } $NET ${ CL } "
echo -e " ${ DGN } Using Bridge: ${ BGN } $BRG ${ CL } "
else
echo -e " ${ DGN } Using Bridge: ${ BGN } $BRG ${ CL } "
fi
else
else
echo -e " ${ DGN } Using IP Address: ${ BGN } $NET ${ CL } "
exit-script
fi
fi
else
exit-script
if NET = $( whiptail --inputbox "Set a Static IPv4 CIDR Address(/24)" 8 58 dhcp --title "IP ADDRESS" 3>& 1 1>& 2 2>& 3) ; then
fi
if [ -z $NET ] ; then
if GATE1 = $( whiptail --inputbox "Set a Gateway IP (mandatory if Static IP was used)" 8 58 --title "GATEWAY IP" 3>& 1 1>& 2 2>& 3) ; then
NET = "dhcp"
if [ -z $GATE1 ] ; then
echo -e " ${ DGN } Using IP Address: ${ BGN } $NET ${ CL } "
GATE1 = "Default"
else
GATE = ""
echo -e " ${ DGN } Using IP Address: ${ BGN } $NET ${ CL } "
fi
else
else
GATE = " ,gw= $GATE1 "
exit-script
fi
fi
if GATE1 = $( whiptail --inputbox "Set a Gateway IP (mandatory if Static IP was used)" 8 58 --title "GATEWAY IP" 3>& 1 1>& 2 2>& 3) ; then
if [ -z $GATE1 ] ; then
GATE1 = "Default"
GATE = ""
else
GATE = " ,gw= $GATE1 "
fi
echo -e " ${ DGN } Using Gateway IP Address: ${ BGN } $GATE1 ${ CL } "
echo -e " ${ DGN } Using Gateway IP Address: ${ BGN } $GATE1 ${ CL } "
else
else
exit-script
exit-script
fi
fi
if ( whiptail --defaultno --title "IPv6" --yesno "Disable IPv6?" 10 58) ; then
if ( whiptail --defaultno --title "IPv6" --yesno "Disable IPv6?" 10 58) ; then
DISABLEIP6 = "yes"
DISABLEIP6 = "yes"
else
else
DISABLEIP6 = "no"
DISABLEIP6 = "no"
fi
fi
echo -e " ${ DGN } Disable IPv6: ${ BGN } $DISABLEIP6 ${ CL } "
echo -e " ${ DGN } Disable IPv6: ${ BGN } $DISABLEIP6 ${ CL } "
if MTU1 = $( whiptail --inputbox "Set Interface MTU Size (leave blank for default)" 8 58 --title "MTU SIZE" 3>& 1 1>& 2 2>& 3) ; then
if MTU1 = $( whiptail --inputbox "Set Interface MTU Size (leave blank for default)" 8 58 --title "MTU SIZE" 3>& 1 1>& 2 2>& 3) ; then
if [ -z $MTU1 ] ; then
if [ -z $MTU1 ] ; then
MTU1 = "Default"
MTU1 = "Default"
MTU = ""
MTU = ""
else
MTU = " ,mtu= $MTU1 "
fi
echo -e " ${ DGN } Using Interface MTU Size: ${ BGN } $MTU1 ${ CL } "
else
else
MTU = " ,mtu= $MTU1 "
exit-script
fi
fi
echo -e " ${ DGN } Using Interface MTU Size: ${ BGN } $MTU1 ${ CL } "
else
exit-script
fi
if SD = $( whiptail --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 --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
if [ -z $SD ] ; then
SX = Host
SX = Host
SD = ""
SD = ""
else
SX = $SD
SD = " -searchdomain= $SD "
fi
echo -e " ${ DGN } Using DNS Search Domain: ${ BGN } $SX ${ CL } "
else
else
SX = $SD
exit-script
SD = " -searchdomain= $SD "
fi
fi
echo -e " ${ DGN } Using DNS Search Domain: ${ BGN } $SX ${ CL } "
else
exit-script
fi
if NX = $( whiptail --inputbox "Set a DNS Server IP (leave blank for HOST)" 8 58 --title "DNS SERVER IP" 3>& 1 1>& 2 2>& 3) ; then
if NX = $( whiptail --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
if [ -z $NX ] ; then
NX = Host
NX = Host
NS = ""
NS = ""
else
NS = " -nameserver= $NX "
fi
echo -e " ${ DGN } Using DNS Server IP Address: ${ BGN } $NX ${ CL } "
else
else
NS = " -nameserver= $NX "
exit-script
fi
fi
echo -e " ${ DGN } Using DNS Server IP Address: ${ BGN } $NX ${ CL } "
else
exit-script
fi
if MAC1 = $( whiptail --inputbox "Set a MAC Address(leave blank for default)" 8 58 --title "MAC ADDRESS" 3>& 1 1>& 2 2>& 3) ; then
if MAC1 = $( whiptail --inputbox "Set a MAC Address(leave blank for default)" 8 58 --title "MAC ADDRESS" 3>& 1 1>& 2 2>& 3) ; then
if [ -z $MAC1 ] ; then
if [ -z $MAC1 ] ; then
MAC1 = "Default"
MAC1 = "Default"
MAC = ""
MAC = ""
else
MAC = " ,hwaddr= $MAC1 "
echo -e " ${ DGN } Using MAC Address: ${ BGN } $MAC1 ${ CL } "
fi
else
else
MAC = " ,hwaddr= $MAC1 "
exit-script
echo -e " ${ DGN } Using MAC Address: ${ BGN } $MAC1 ${ CL } "
fi
fi
else
exit-script
fi
if VLAN1 = $( whiptail --inputbox "Set a Vlan(leave blank for default)" 8 58 --title "VLAN" 3>& 1 1>& 2 2>& 3) ; then
if VLAN1 = $( whiptail --inputbox "Set a Vlan(leave blank for default)" 8 58 --title "VLAN" 3>& 1 1>& 2 2>& 3) ; then
if [ -z $VLAN1 ] ; then
if [ -z $VLAN1 ] ; then
VLAN1 = "Default"
VLAN1 = "Default"
VLAN = ""
VLAN = ""
else
VLAN = " ,tag= $VLAN1 "
fi
echo -e " ${ DGN } Using Vlan: ${ BGN } $VLAN1 ${ CL } "
else
else
VLAN = " ,tag= $VLAN1 "
exit-script
fi
fi
echo -e " ${ DGN } Using Vlan: ${ BGN } $VLAN1 ${ CL } "
else
exit-script
fi
if ( whiptail --defaultno --title "SSH ACCESS" --yesno "Enable Root SSH Access?" 10 58) ; then
if ( whiptail --defaultno --title "SSH ACCESS" --yesno "Enable Root SSH Access?" 10 58) ; then
SSH = "yes"
SSH = "yes"
else
else
SSH = "no"
SSH = "no"
fi
fi
echo -e " ${ DGN } Enable Root SSH Access: ${ BGN } $SSH ${ CL } "
echo -e " ${ DGN } Enable Root SSH Access: ${ BGN } $SSH ${ CL } "
if ( whiptail --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58) ; then
if ( whiptail --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58) ; then
VERB = "yes"
VERB = "yes"
else
else
VERB = "no"
VERB = "no"
fi
fi
echo -e " ${ DGN } Enable Verbose Mode: ${ BGN } $VERB ${ CL } "
echo -e " ${ DGN } Enable Verbose Mode: ${ BGN } $VERB ${ CL } "
if ( whiptail --title "ADVANCED SETTINGS COMPLETE" --yesno " Ready to create ${ APP } LXC? " 10 58) ; then
if ( whiptail --title "ADVANCED SETTINGS COMPLETE" --yesno " Ready to create ${ APP } LXC? " 10 58) ; then
echo -e " ${ RD } Creating a ${ APP } LXC using the above advanced settings ${ CL } "
echo -e " ${ RD } Creating a ${ APP } LXC using the above advanced settings ${ CL } "
else
else
clear
clear
header_info
header_info
echo -e " ${ RD } Using Advanced Settings ${ CL } "
echo -e " ${ RD } Using Advanced Settings ${ CL } "
advanced_settings
advanced_settings
fi
fi
}
}
function install_script( ) {
function install_script( ) {
ARCH_CHECK
ARCH_CHECK
PVE_CHECK
PVE_CHECK
NEXTID = $( pvesh get /cluster/nextid)
NEXTID = $( pvesh get /cluster/nextid)
header_info
if ( whiptail --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58) ; then
header_info
header_info
echo -e " ${ BL } Using Default Settings ${ CL } "
if ( whiptail --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58) ; then
default_settings
header_info
else
echo -e " ${ BL } Using Default Settings ${ CL } "
header_info
default_settings
echo -e " ${ RD } Using Advanced Settings ${ CL } "
else
advanced_settings
header_info
fi
echo -e " ${ RD } Using Advanced Settings ${ CL } "
advanced_settings
fi
}
}
function update_script( ) {
function update_script( ) {
header_info
header_info
msg_info " Updating ${ APP } LXC "
msg_info " Updating ${ APP } LXC "
pacman-key --init
pacman-key --init
pacman-key --populate archlinux
pacman-key --populate archlinux
pacman -Sy archlinux-keyring && pacman -Su
pacman -Sy archlinux-keyring && pacman -Su
msg_ok "Updated Successfully"
msg_ok "Updated Successfully"
exit
exit
}
}
if command -v pveversion >/dev/null 2>& 1; then
if command -v pveversion >/dev/null 2>& 1; then
if ! ( whiptail --title " ${ APP } LXC " --yesno " This will create a New ${ APP } LXC. Proceed? " 10 58) ; then
if ! ( whiptail --title " ${ APP } LXC " --yesno " This will create a New ${ APP } LXC. Proceed? " 10 58) ; then
clear
clear
echo -e "⚠ User exited script \n"
echo -e "⚠ User exited script \n"
exit
exit
fi
fi
install_script
install_script
fi
fi
if ! command -v pveversion >/dev/null 2>& 1; then
if ! command -v pveversion >/dev/null 2>& 1; then
if ! ( whiptail --title " ${ APP } LXC UPDATE " --yesno " This will update ${ APP } LXC. Proceed? " 10 58) ; then
if ! ( whiptail --title " ${ APP } LXC UPDATE " --yesno " This will update ${ APP } LXC. Proceed? " 10 58) ; then
clear
clear
echo -e "⚠ User exited script \n"
echo -e "⚠ User exited script \n"
exit
exit
fi
fi
update_script
update_script
fi
fi
if [ " $VERB " = = "yes" ] ; then set -x; fi
if [ " $VERB " = = "yes" ] ; then set -x; fi
if [ " $CT_TYPE " = = "1" ] ; then
if [ " $CT_TYPE " = = "1" ] ; then
FEATURES = "nesting=1,keyctl=1"
FEATURES = "nesting=1,keyctl=1"
else
else
FEATURES = "nesting=1"
FEATURES = "nesting=1"
fi
fi
TEMP_DIR = $( mktemp -d)
TEMP_DIR = $( mktemp -d)
pushd $TEMP_DIR >/dev/null
pushd $TEMP_DIR >/dev/null