Update 'test.sh'

This commit is contained in:
Sthope 2022-07-16 18:53:07 +00:00
parent 6cd44f7a15
commit c25b0a3e11

340
test.sh
View File

@ -49,16 +49,6 @@ function cleanup() {
TEMP_DIR=$(mktemp -d) TEMP_DIR=$(mktemp -d)
pushd $TEMP_DIR >/dev/null pushd $TEMP_DIR >/dev/null
# while true; do
# read -p "This will create a New Home Assistant OS VM. Proceed(y/n)?" yn
# case $yn in
# [Yy]* ) break;;
# [Nn]* ) exit;;
# * ) echo "Please answer yes or no.";;
# esac
# done
# clear
function header_info { function header_info {
echo -e "${BL} echo -e "${BL}
___ _ _ _ __ ___ _ _ _ __
@ -82,185 +72,177 @@ function default_settings() {
clear clear
header_info header_info
BRANCH=${STABLE} BRANCH=${STABLE}
# echo -e "${DGN}Using VM ID ${BGN}$NEXTID${CL}"
VMID=$NEXTID VMID=$NEXTID
# echo -e "${DGN}Using VM Name ${BGN}haos${STABLE}${CL}"
VM_NAME=Home-Assistant VM_NAME=Home-Assistant
# echo -e "${DGN}Using ${BGN}2${CL}${DGN}vCPU${CL}"
CORE_COUNT="2" CORE_COUNT="2"
# echo -e "${DGN}Using ${BGN}4096${CL}${DGN}MiB RAM${CL}"
RAM_SIZE="4096" RAM_SIZE="4096"
# echo -e "${DGN}Using Bridge ${BGN}vmbr0${CL}"
BRG="vmbr0" BRG="vmbr0"
# echo -e "${DGN}Using MAC Address ${BGN}$GEN_MAC${CL}"
MAC=$GEN_MAC MAC=$GEN_MAC
# echo -e "${DGN}Using VLAN Tag ${BGN}NONE${CL}"
VLAN="" VLAN=""
# echo -e "${DGN}Start VM when completed ${BGN}yes${CL}"
START_VM="yes" START_VM="yes"
} }
function advanced_settings() { # function advanced_settings() {
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${YW}Type Latest for Version ${RELEASE}, or Press [ENTER] for Stable Version ${STABLE} " # echo -e "${YW}Type Latest for Version ${RELEASE}, or Press [ENTER] for Stable Version ${STABLE} "
read BRANCH # read BRANCH
if [ -z $BRANCH ]; then BRANCH=$STABLE; # if [ -z $BRANCH ]; then BRANCH=$STABLE;
else # else
BRANCH=$RELEASE; fi; # BRANCH=$RELEASE; fi;
echo -en "${DGN}Set Version To ${BL}$BRANCH${CL}" # echo -en "${DGN}Set Version To ${BL}$BRANCH${CL}"
echo -e " ${CM}${CL} \r" # echo -e " ${CM}${CL} \r"
sleep 1 # sleep 1
clear # clear
header_info # header_info
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${YW}Enter the VM ID, or Press [ENTER] to automatically generate (${NEXTID}) " # echo -e "${YW}Enter the VM ID, or Press [ENTER] to automatically generate (${NEXTID}) "
read VMID # read VMID
if [ -z $VMID ]; then VMID=$NEXTID; fi; # if [ -z $VMID ]; then VMID=$NEXTID; fi;
echo -en "${DGN}Set VM ID To ${BL}$VMID${CL}" # echo -en "${DGN}Set VM ID To ${BL}$VMID${CL}"
echo -e " ${CM}${CL} \r" # echo -e " ${CM}${CL} \r"
sleep 1 # sleep 1
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}" # echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
echo -e "${YW}Enter VM Name (no-spaces), or Press [ENTER] for Default: haos${BRANCH} " # echo -e "${YW}Enter VM Name (no-spaces), or Press [ENTER] for Default: haos${BRANCH} "
read VMNAME # read VMNAME
if [ -z $VMNAME ]; then # if [ -z $VMNAME ]; then
VM_NAME=haos${BRANCH} # VM_NAME=haos${BRANCH}
else # else
VM_NAME=$(echo ${VMNAME,,} | tr -d ' ') # VM_NAME=$(echo ${VMNAME,,} | tr -d ' ')
fi # fi
echo -en "${DGN}Set CT Name To ${BL}$VM_NAME${CL}" # echo -en "${DGN}Set CT Name To ${BL}$VM_NAME${CL}"
echo -e " ${CM}${CL} \r" # echo -e " ${CM}${CL} \r"
sleep 1 # sleep 1
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}" # echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}" # echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
echo -e "${YW}Allocate CPU cores, or Press [ENTER] for Default: 2 " # echo -e "${YW}Allocate CPU cores, or Press [ENTER] for Default: 2 "
read CORE_COUNT # read CORE_COUNT
if [ -z $CORE_COUNT ]; then CORE_COUNT="2"; fi; # if [ -z $CORE_COUNT ]; then CORE_COUNT="2"; fi;
echo -en "${DGN}Set Cores To ${BL}${CORE_COUNT}${CL}" # echo -en "${DGN}Set Cores To ${BL}${CORE_COUNT}${CL}"
echo -e " ${CM}${CL} \r" # echo -e " ${CM}${CL} \r"
sleep 1 # sleep 1
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}" # echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}" # echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}" # echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}"
echo -e "${YW}Allocate RAM in MiB, or Press [ENTER] for Default: 4096 " # echo -e "${YW}Allocate RAM in MiB, or Press [ENTER] for Default: 4096 "
read RAM_SIZE # read RAM_SIZE
if [ -z $RAM_SIZE ]; then RAM_SIZE="4096"; fi; # if [ -z $RAM_SIZE ]; then RAM_SIZE="4096"; fi;
echo -en "${DGN}Set RAM To ${BL}$RAM_SIZE${CL}" # echo -en "${DGN}Set RAM To ${BL}$RAM_SIZE${CL}"
echo -e " ${CM}${CL} \n" # echo -e " ${CM}${CL} \n"
sleep 1 # sleep 1
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}" # echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}" # echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}" # echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}"
echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}" # echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}"
echo -e "${YW}Enter a Bridge, or Press [ENTER] for Default: vmbr0 " # echo -e "${YW}Enter a Bridge, or Press [ENTER] for Default: vmbr0 "
read BRG # read BRG
if [ -z $BRG ]; then BRG="vmbr0"; fi; # if [ -z $BRG ]; then BRG="vmbr0"; fi;
echo -en "${DGN}Set Bridge To ${BL}$BRG${CL}" # echo -en "${DGN}Set Bridge To ${BL}$BRG${CL}"
echo -e " ${CM}${CL} \n" # echo -e " ${CM}${CL} \n"
sleep 1 # sleep 1
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}" # echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}" # echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}" # echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}"
echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}" # echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}"
echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}" # echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}"
echo -e "${YW}Enter a Valid MAC Address, or Press [ENTER] for Generated MAC: $GEN_MAC " # echo -e "${YW}Enter a Valid MAC Address, or Press [ENTER] for Generated MAC: $GEN_MAC "
read MAC # read MAC
if [ -z $MAC ]; then MAC=$GEN_MAC; fi; # if [ -z $MAC ]; then MAC=$GEN_MAC; fi;
echo -en "${DGN}Set MAC Address To ${BL}$MAC${CL}" # echo -en "${DGN}Set MAC Address To ${BL}$MAC${CL}"
echo -e " ${CM}${CL} \n" # echo -e " ${CM}${CL} \n"
sleep 1 # sleep 1
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}" # echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}" # echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}" # echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}"
echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}" # echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}"
echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}" # echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}"
echo -e "${DGN}Using MAC Address ${BGN}$MAC${CL}" # echo -e "${DGN}Using MAC Address ${BGN}$MAC${CL}"
echo -e "${YW}Enter a VLAN Tag, or Press [ENTER] for Default: NONE " # echo -e "${YW}Enter a VLAN Tag, or Press [ENTER] for Default: NONE "
read VLAN1 # read VLAN1
if [ -z $VLAN1 ]; then VLAN1="NONE" VLAN=""; # if [ -z $VLAN1 ]; then VLAN1="NONE" VLAN="";
echo -en "${DGN}Set VLAN Tag To ${BL}$VLAN1${CL}" # echo -en "${DGN}Set VLAN Tag To ${BL}$VLAN1${CL}"
else # else
VLAN=",tag=$VLAN1" # VLAN=",tag=$VLAN1"
echo -en "${DGN}Set VLAN Tag To ${BL}$VLAN1${CL}" # echo -en "${DGN}Set VLAN Tag To ${BL}$VLAN1${CL}"
fi; # fi;
echo -e " ${CM}${CL} \n" # echo -e " ${CM}${CL} \n"
sleep 1 # sleep 1
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}" # echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}" # echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}" # echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}"
echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB${CL}" # echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB${CL}"
echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}" # echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}"
echo -e "${DGN}Using MAC Address ${BGN}$MAC${CL}" # echo -e "${DGN}Using MAC Address ${BGN}$MAC${CL}"
echo -e "${DGN}Using VLAN Tag ${BGN}$VLAN1${CL}" # echo -e "${DGN}Using VLAN Tag ${BGN}$VLAN1${CL}"
echo -e "${YW}Start VM when completed, or Press [ENTER] for Default: yes " # echo -e "${YW}Start VM when completed, or Press [ENTER] for Default: yes "
read START_VM # read START_VM
if [ -z $START_VM ]; then START_VM="yes"; # if [ -z $START_VM ]; then START_VM="yes";
else # else
START_VM="no"; fi; # START_VM="no"; fi;
echo -en "${DGN}Starting VM when completed ${BL}$START_VM${CL}" # echo -en "${DGN}Starting VM when completed ${BL}$START_VM${CL}"
echo -e " ${CM}${CL} \n" # echo -e " ${CM}${CL} \n"
sleep 1 # sleep 1
clear # clear
header_info # header_info
echo -e "${RD}Using Advanced Settings${CL}" # echo -e "${RD}Using Advanced Settings${CL}"
echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}" # echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}" # echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}" # echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}" # echo -e "${DGN}Using ${BGN}${CORE_COUNT}${CL}${DGN}vCPU${CL}"
echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB${CL}" # echo -e "${DGN}Using ${BGN}${RAM_SIZE}${CL}${DGN}MiB${CL}"
echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}" # echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}"
echo -e "${DGN}Using MAC Address ${BGN}$MAC${CL}" # echo -e "${DGN}Using MAC Address ${BGN}$MAC${CL}"
echo -e "${DGN}Using VLAN Tag ${BGN}$VLAN1${CL}" # echo -e "${DGN}Using VLAN Tag ${BGN}$VLAN1${CL}"
echo -e "${DGN}Start VM when completed ${BGN}$START_VM${CL}" # echo -e "${DGN}Start VM when completed ${BGN}$START_VM${CL}"
read -p "Are these settings correct(y/n)? " -n 1 -r # read -p "Are these settings correct(y/n)? " -n 1 -r
echo # echo
if [[ ! $REPLY =~ ^[Yy]$ ]] # if [[ ! $REPLY =~ ^[Yy]$ ]]
then # then
advanced_settings # advanced_settings
fi # fi
} # }
function start_script() { # function start_script() {
echo -e "${YW}Type Advanced, or Press [ENTER] for Default Settings " # echo -e "${YW}Type Advanced, or Press [ENTER] for Default Settings "
read SETTINGS # read SETTINGS
if [ -z $SETTINGS ]; then default_settings; # if [ -z $SETTINGS ]; then default_settings;
else # else
advanced_settings # advanced_settings
fi; # fi;
} # }
# start_script # start_script
default_settings default_settings
@ -291,14 +273,14 @@ else
fi fi
# msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." # msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
# msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." # msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}."
msg_info "Getting URL for Home Assistant ${BRANCH} Disk Image" # msg_info "Getting URL for Home Assistant ${BRANCH} Disk Image"
URL=https://github.com/home-assistant/operating-system/releases/download/${BRANCH}/haos_ova-${BRANCH}.qcow2.xz URL=https://github.com/home-assistant/operating-system/releases/download/${BRANCH}/haos_ova-${BRANCH}.qcow2.xz
sleep 2 sleep 2
# msg_ok "${CL}${BL}${URL}${CL}" # msg_ok "${CL}${BL}${URL}${CL}"
wget -q --show-progress $URL wget -q --show-progress $URL
# echo -en "\e[1A\e[0K" # echo -en "\e[1A\e[0K"
FILE=$(basename $URL) FILE=$(basename $URL)
msg_ok "Downloaded ${CL}${BL}haos_ova-${BRANCH}.qcow2.xz${CL}" # msg_ok "Downloaded ${CL}${BL}haos_ova-${BRANCH}.qcow2.xz${CL}"
# msg_info "Extracting KVM Disk Image" # msg_info "Extracting KVM Disk Image"
unxz $FILE unxz $FILE
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')