From bfb873f5ea4e76e6f77b03300aa123e4c18f0637 Mon Sep 17 00:00:00 2001
From: tteckster <tteckster@gmail.com>
Date: Wed, 27 Apr 2022 07:26:15 -0400
Subject: [PATCH] Update haos_vm.sh

---
 vm/haos_vm.sh | 109 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 98 insertions(+), 11 deletions(-)

diff --git a/vm/haos_vm.sh b/vm/haos_vm.sh
index 5b2a9a4f..bafbfe13 100644
--- a/vm/haos_vm.sh
+++ b/vm/haos_vm.sh
@@ -54,10 +54,18 @@ function default_settings() {
 		VMID=$NEXTID
 		echo -e "${DGN}Using VM Name ${BGN}haos${STABLE}${CL}"
 		VM_NAME=haos${STABLE}
-		echo -e "${DGN}Using ${BGN}2vCPU${CL}"
-		CORE_COUNT="2"
-		echo -e "${DGN}Using ${BGN}4096MiB${CL}"
-		RAM_SIZE="4096"
+	        echo -e "${DGN}Using ${BGN}2${CL}${DGN}vCPU${CL}"
+	        CORE_COUNT="2"
+ 	        echo -e "${DGN}Using ${BGN}4096${CL}${DGN}MiB RAM${CL}"
+	        RAM_SIZE="4096"
+	        echo -e "${DGN}Using Bridge ${BGN}vmbr0${CL}"
+	        BRG="vmbr0"
+	        echo -e "${DGN}Using Static IP Address ${BGN}DHCP${CL}"
+	        NET=dhcp
+	        echo -e "${DGN}Using Gateway Address ${BGN}NONE${CL}"
+	        GATE=""
+	        echo -e "${DGN}Using VLAN Tag ${BGN}NONE${CL}"
+	        VLAN=""
 		echo -e "${DGN}Start VM when completed ${BGN}yes${CL}"
 		START_VM="yes"
 
@@ -119,7 +127,7 @@ header_info
 	echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
         echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
         echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
-        echo -e "${DGN}Using ${BGN}${CORE_COUNT}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 "
         read RAM_SIZE
         if [ -z $RAM_SIZE ]; then RAM_SIZE="4096"; fi;
@@ -132,8 +140,82 @@ header_info
 	echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
         echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
         echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
-        echo -e "${DGN}Using ${BGN}${CORE_COUNT}vCPU${CL}"
-        echo -e "${DGN}Using ${BGN}${RAM_SIZE}MiB${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 "${YW}Enter a Bridge, or Press [ENTER] for Default: vmbr0 "
+        read BRG
+        if [ -z $BRG ]; then BRG="vmbr0"; fi;
+        echo -en "${DGN}Set Bridge To ${BL}$BRG${CL}"
+echo -e " ${CM}${CL} \n"
+sleep 1
+clear
+header_info
+        echo -e "${RD}Using Advanced Settings${CL}"
+	echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
+        echo -e "${DGN}Using VM ID ${BGN}$VMID${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}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}"
+    	echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}"
+        echo -e "${YW}Enter a Static IP Address, or Press [ENTER] for Default: DHCP "
+        read NET
+        if [ -z $NET ]; then NET="dhcp"; fi;
+        echo -en "${DGN}Set Static IP Address To ${BL}$NET${CL}"
+echo -e " ${CM}${CL} \n"
+sleep 1
+clear
+header_info
+    	echo -e "${RD}Using Advanced Settings${CL}"
+	echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
+        echo -e "${DGN}Using VM ID ${BGN}$VMID${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}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}"
+    	echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}"
+        echo -e "${DGN}Using Static IP Address ${BGN}$NET${CL}"
+        echo -e "${YW}Enter a Gateway IP, or Press [ENTER] for Default: NONE "
+        read GATE1
+        if [ -z $GATE1 ]; then GATE1="NONE" GATE=""; 
+        echo -en "${DGN}Set Gateway IP To ${BL}$GATE1${CL}"
+        else
+          GATE=",gw=$GATE1"
+        echo -en "${DGN}Set Gateway IP To ${BL}$GATE1${CL}"
+        fi;
+echo -e " ${CM}${CL} \n"
+sleep 1
+clear
+header_info
+        echo -e "${RD}Using Advanced Settings${CL}"
+	echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
+        echo -e "${DGN}Using VM ID ${BGN}$VMID${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}${RAM_SIZE}${CL}${DGN}MiB RAM${CL}"
+	echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}"
+        echo -e "${DGN}Using Static IP Address ${BGN}$NET${CL}"
+        echo -e "${DGN}Using Gateway IP Address ${BGN}$GATE1${CL}"
+        echo -e "${YW}Enter a VLAN Tag, or Press [ENTER] for Default: NONE "
+        read VLAN1
+        if [ -z $VLAN1 ]; then VLAN1="NONE" VLAN=""; 
+        echo -en "${DGN}Set VLAN Tag To ${BL}$VLAN1${CL}"
+        else
+          VLAN=",tag=$VLAN1"
+        echo -en "${DGN}Set VLAN Tag To ${BL}$VLAN1${CL}"
+        fi;
+echo -e " ${CM}${CL} \n"
+sleep 1
+clear
+header_info
+	echo -e "${RD}Using Advanced Settings${CL}"
+	echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
+        echo -e "${DGN}Using VM ID ${BGN}$VMID${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}${RAM_SIZE}${CL}${DGN}MiB${CL}"
+	echo -e "${DGN}Using Bridge ${BGN}${BRG}${CL}"
+        echo -e "${DGN}Using Static IP Address ${BGN}$NET${CL}"
+        echo -e "${DGN}Using Gateway IP Address ${BGN}$GATE1${CL}"
+        echo -e "${DGN}Using VLAN Tag ${BGN}$VLAN1${CL}"
         echo -e "${YW}Start VM when completed, or Press [ENTER] for Default: yes "
         read START_VM
         if [ -z $START_VM ]; then START_VM="yes"; 
@@ -148,9 +230,13 @@ header_info
 	echo -e "${DGN}Using Version ${BGN}$BRANCH${CL}"
         echo -e "${DGN}Using VM ID ${BGN}$VMID${CL}"
         echo -e "${DGN}Using VM Name ${BGN}$VM_NAME${CL}"
-        echo -e "${DGN}Using ${BGN}${CORE_COUNT}vCPU${CL}"
-        echo -e "${DGN}Using ${BGN}${RAM_SIZE}MiB${CL}"
-        echo -e "${DGN}Start VM when completed ${BGN}$START_VM${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 Bridge ${BGN}${BRG}${CL}"
+        echo -e "${DGN}Using Static IP Address ${BGN}$NET${CL}"
+        echo -e "${DGN}Using Gateway IP Address ${BGN}$GATE1${CL}"
+        echo -e "${DGN}Using VLAN Tag ${BGN}$VLAN1${CL}"
+	echo -e "${DGN}Start VM when completed ${BGN}$START_VM${CL}"
 
 read -p "Are these settings correct(y/n)? " -n 1 -r
 echo
@@ -267,7 +353,8 @@ done
 msg_ok "Extracted Disk Image"
 
 msg_info "Creating HAOS VM"
-qm create $VMID -agent 1 -bios ovmf -cores $CORE_COUNT -memory $RAM_SIZE -name $VM_NAME -net0 virtio,bridge=vmbr0 \
+qm create $VMID -agent 1 -bios ovmf -cores $CORE_COUNT -memory $RAM_SIZE -name $VM_NAME \
+  -net0 virtio,bridge=$BRG ip=$NET$GATE$VLAN \
   -onboot 1 -ostype l26 -scsihw virtio-scsi-pci
 pvesm alloc $STORAGE $VMID $DISK0 128 1>&/dev/null
 qm importdisk $VMID ${FILE%.*} $STORAGE ${IMPORT_OPT:-} 1>&/dev/null