2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#!/usr/bin/env bash
  
						 
					
						
							
								
									
										
										
										
											2023-02-07 12:15:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-01 12:13:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Copyright (c) 2021-2024 tteck  
						 
					
						
							
								
									
										
										
										
											2023-02-07 12:15:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Author: tteck (tteckster)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# License: MIT  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# https://github.com/tteck/Proxmox/raw/main/LICENSE  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-02 18:28:18 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  header_info {  
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  clear
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  cat <<"EOF" 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-02 18:28:18 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    __  __                        ___              _      __              __     ____  _____
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   / / / /___  ____ ___  ___     /   |   __________( _) ____/ /_____ _____  / /_   / __ \/  ___/
							 
						 
					
						
							
								
									
										
										
										
											2023-05-18 17:06:08 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / /_/ / __ \/  __ ` __ \/  _ \    / /|  |  / ___/ ___/ / ___/ __/ __ ` / __ \/  __/  / / / /\_ _ \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 / __  / /_/ / / / / / /  __/  / ___ | ( __  | __  )  ( __  )  /_/ /_/ / / / / /_   / /_/ /___/ /
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/_/ /_/\_ ___/_/ /_/ /_/\_ __/  /_/  | _/____/____/_/____/\_ _/\_ _,_/_/ /_/\_ _/   \_ ___//____/
							 
						 
					
						
							
								
									
										
										
										
											2023-01-02 18:28:18 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EOF
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								header_info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  -e "\n Loading..."  
						 
					
						
							
								
									
										
										
										
											2023-02-10 14:02:16 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								GEN_MAC = 02:$( openssl rand -hex 5  |  awk '{print toupper($0)}'  |  sed 's/\(..\)/\1:/g; s/.$//' )  
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								NEXTID = $( pvesh get /cluster/nextid)  
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VERSIONS = ( stable beta dev)  
						 
					
						
							
								
									
										
										
										
											2023-02-10 13:39:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  version in " ${ VERSIONS [@] } " ;  do  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  eval  " $version = $( curl -s https://raw.githubusercontent.com/home-assistant/version/master/$version .json |  grep "ova"  |  cut -d '"'  -f 4) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								done  
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								YW = $( echo  "\033[33m" )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								BL = $( echo  "\033[36m" )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HA = $( echo  "\033[1;34m" )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								RD = $( echo  "\033[01;31m" )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								BGN = $( echo  "\033[4;92m" )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								GN = $( echo  "\033[1;92m" )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								DGN = $( echo  "\033[32m" )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								CL = $( echo  "\033[m" )  
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								BFR = "\\r\\033[K"  
						 
					
						
							
								
									
										
										
										
											2024-04-22 06:38:43 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								HOLD = " "  
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								CM = " ${ GN } ✓ ${ CL } "  
						 
					
						
							
								
									
										
										
										
											2022-08-29 19:34:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								CROSS = " ${ RD } ✗ ${ CL } "  
						 
					
						
							
								
									
										
										
										
											2022-12-05 17:35:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								THIN = "discard=on,ssd=1,"  
						 
					
						
							
								
									
										
										
										
											2024-01-13 20:57:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								SPINNER_PID = ""  
						 
					
						
							
								
									
										
										
										
											2023-02-10 20:51:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  -Eeuo pipefail 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								trap  'error_handler $LINENO "$BASH_COMMAND"'  ERR 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								trap  cleanup EXIT 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:27:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-10 20:51:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  error_handler( )  {  
						 
					
						
							
								
									
										
										
										
											2024-01-21 04:23:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  [  -n " $SPINNER_PID "  ]  &&  ps -p $SPINNER_PID  > /dev/null;  then  kill  $SPINNER_PID  > /dev/null;  fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:27:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  printf  "\e[?25h" 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-10 20:51:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  local  exit_code = " $? " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  local  line_number = " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  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 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " \n $error_message \n " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  cleanup_vmid
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  cleanup_vmid( )  {  
						 
					
						
							
								
									
										
										
										
											2023-02-09 20:15:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  qm status $VMID  & >/dev/null;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    qm stop $VMID  & >/dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    qm destroy $VMID  & >/dev/null
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  cleanup( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  popd  >/dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  rm -rf $TEMP_DIR 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								TEMP_DIR = $( mktemp -d)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pushd  $TEMP_DIR  >/dev/null 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  whiptail --backtitle "Proxmox VE Helper Scripts"  --title "HOME ASSISTANT OS VM"  --yesno "This will create a New Home Assistant OS VM. Proceed?"  10  58;  then  
						 
					
						
							
								
									
										
										
										
											2023-02-08 12:00:17 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								else  
						 
					
						
							
								
									
										
										
										
											2023-02-09 20:15:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  header_info &&  echo  -e "⚠ User exited script \n"  &&  exit 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
									
										
										
										
											2023-02-08 12:00:17 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:27:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  spinner( )  {  
						 
					
						
							
								
									
										
										
										
											2024-04-22 06:38:43 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    local  chars = "/-\|" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    local  spin_i = 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    printf  "\e[?25l" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        printf  "\r \e[36m%s\e[0m"  " ${ chars : spin_i ++% ${# chars } : 1 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sleep 0.1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    done 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:27:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  msg_info( )  {  
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  local  msg = " $1 " 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:27:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  echo  -ne "   ${ HOLD }   ${ YW } ${ msg }     " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  spinner & 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  SPINNER_PID = $! 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  msg_ok( )  {  
						 
					
						
							
								
									
										
										
										
											2024-01-21 04:23:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  [  -n " $SPINNER_PID "  ]  &&  ps -p $SPINNER_PID  > /dev/null;  then  kill  $SPINNER_PID  > /dev/null;  fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:27:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  printf  "\e[?25h" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  local  msg = " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ BFR }   ${ CM }   ${ GN } ${ msg } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-08-29 19:34:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  msg_error( )  {  
						 
					
						
							
								
									
										
										
										
											2024-01-21 04:23:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  [  -n " $SPINNER_PID "  ]  &&  ps -p $SPINNER_PID  > /dev/null;  then  kill  $SPINNER_PID  > /dev/null;  fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:27:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  printf  "\e[?25h" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  local  msg = " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ BFR }   ${ CROSS }   ${ RD } ${ msg } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-29 19:34:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:40:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  check_root( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  [ [  " $( id -u) "  -ne 0  ||  $( ps -o comm =  -p $PPID )  = =  "sudo"  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    clear
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    msg_error "Please run this script as root." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo  -e "\nExiting..." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  pve_check( )  {  
						 
					
						
							
								
									
										
										
										
											2024-06-30 10:18:37 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  ! pveversion |  grep -Eq "pve-manager/8.[1-3]" ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:40:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    msg_error "This version of Proxmox Virtual Environment is not supported" 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-30 10:18:37 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    echo  -e "Requires Proxmox Virtual Environment Version 8.1 or later." 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    echo  -e "Exiting..." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-30 10:18:37 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
									
										
										
										
											2023-01-25 10:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  arch_check( )  {  
						 
					
						
							
								
									
										
										
										
											2023-02-09 20:15:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  [  " $( dpkg --print-architecture) "  !=  "amd64"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:40:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    msg_error "This script will not work with PiMox! \n" 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-25 10:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    echo  -e "Exiting..." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  ssh_check( )  {  
						 
					
						
							
								
									
										
										
										
											2023-03-27 20:24:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  command  -v pveversion >/dev/null 2>& 1;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-27 21:21:14 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -n " ${ SSH_CLIENT : +x } "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if  whiptail --backtitle "Proxmox VE Helper Scripts"  --defaultno --title "SSH DETECTED"  --yesno "It's suggested to use the Proxmox shell instead of SSH, since SSH can create issues while gathering variables. Would you like to proceed with using SSH?"  10  62;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-27 20:24:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        echo  "you've been warned" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        clear
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-02 08:48:09 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  exit-script( )  {  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  clear
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e "⚠  User exited script \n" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  default_settings( )  {  
						 
					
						
							
								
									
										
										
										
											2023-02-10 14:43:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  BRANCH = " $stable " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  VMID = " $NEXTID " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  FORMAT = ",efitype=4m" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  MACHINE = "" 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:40:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  DISK_CACHE = "cache=writethrough," 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-10 14:43:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  HN = " haos $stable " 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:40:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  CPU_TYPE = " -cpu host" 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-10 14:43:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  CORE_COUNT = "2" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  RAM_SIZE = "4096" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  BRG = "vmbr0" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  MAC = " $GEN_MAC " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  VLAN = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  MTU = "" 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:55:01 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  START_VM = "yes" 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-10 14:43:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using HAOS Version:  ${ BGN } ${ BRANCH } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using Virtual Machine ID:  ${ BGN } ${ VMID } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using Machine Type:  ${ BGN } i440fx ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:52:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using Disk Cache:  ${ BGN } Write Through ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-10 14:43:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using Hostname:  ${ BGN } ${ HN } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:40:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using CPU Model:  ${ BGN } Host ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-10 14:43:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Allocated Cores:  ${ BGN } ${ CORE_COUNT } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Allocated RAM:  ${ BGN } ${ RAM_SIZE } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using Bridge:  ${ BGN } ${ BRG } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using MAC Address:  ${ BGN } ${ MAC } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using VLAN:  ${ BGN } Default ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Using Interface MTU Size:  ${ BGN } Default ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ DGN } Start VM when completed:  ${ BGN } yes ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  echo  -e " ${ BL } Creating a HAOS VM using the above default settings ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-02 08:48:09 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  advanced_settings( )  {  
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  BRANCH = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "HAOS VERSION"  --radiolist "Choose Version"  --cancel-button Exit-Script 10  58  3  \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    " $stable "  "Stable  "  ON \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    " $beta "  "Beta  "  OFF \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    " $dev "  "Dev  "  OFF \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo  -e " ${ DGN } Using HAOS Version:  ${ BGN } $BRANCH ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  VMID = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Virtual Machine ID"  8  58  $NEXTID  --title "VIRTUAL MACHINE ID"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if  [  -z " $VMID "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        VMID = " $NEXTID " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-18 17:06:08 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if  pct status " $VMID "  & >/dev/null ||  qm status " $VMID "  & >/dev/null;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        echo  -e " ${ CROSS } ${ RD }  ID  $VMID  is already in use ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Virtual Machine ID:  ${ BGN } $VMID ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      break 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  MACH = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "MACHINE TYPE"  --radiolist --cancel-button Exit-Script "Choose Type"  10  58  2  \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    "i440fx"  "Machine i440fx"  ON \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "q35"  "Machine q35"  OFF \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  [  $MACH  =  q35 ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Machine Type:  ${ BGN } $MACH ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      FORMAT = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      MACHINE = " -machine q35" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Machine Type:  ${ BGN } $MACH ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      FORMAT = ",efitype=4m" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      MACHINE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  DISK_CACHE1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "DISK CACHE"  --radiolist "Choose"  --cancel-button Exit-Script 10  58  2  \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:52:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    "0"  "None"  OFF \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "1"  "Write Through (Default)"  ON \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  [  $DISK_CACHE1  =  "1"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Disk Cache:  ${ BGN } Write Through ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      DISK_CACHE = "cache=writethrough," 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:52:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Disk Cache:  ${ BGN } None ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      DISK_CACHE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  VM_NAME = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Hostname"  8  58  haos${ BRANCH }  --title "HOSTNAME"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -z $VM_NAME  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      HN = " haos ${ BRANCH } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Hostname:  ${ BGN } $HN ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      HN = $( echo  ${ VM_NAME ,, }  |  tr -d ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Hostname:  ${ BGN } $HN ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-25 10:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-02-08 12:00:17 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  CPU_TYPE1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "CPU MODEL"  --radiolist "Choose"  --cancel-button Exit-Script 10  58  2  \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:52:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    "0"  "KVM64"  OFF \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "1"  "Host (Default)"  ON \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-02 11:26:00 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  [  $CPU_TYPE1  =  "1"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using CPU Model:  ${ BGN } Host ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      CPU_TYPE = " -cpu host" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:52:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using CPU Model:  ${ BGN } KVM64 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-02 11:26:00 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      CPU_TYPE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  CORE_COUNT = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Allocate CPU Cores"  8  58  2  --title "CORE COUNT"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -z $CORE_COUNT  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      CORE_COUNT = "2" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Allocated Cores:  ${ BGN } $CORE_COUNT ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Allocated Cores:  ${ BGN } $CORE_COUNT ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-24 14:06:14 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  RAM_SIZE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Allocate RAM in MiB"  8  58  4096  --title "RAM"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -z $RAM_SIZE  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      RAM_SIZE = "4096" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Allocated RAM:  ${ BGN } $RAM_SIZE ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Allocated RAM:  ${ BGN } $RAM_SIZE ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-25 10:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-01-25 10:42:35 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  BRG = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set a Bridge"  8  58  vmbr0 --title "BRIDGE"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -z $BRG  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      BRG = "vmbr0" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Bridge:  ${ BGN } $BRG ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Bridge:  ${ BGN } $BRG ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  MAC1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set a MAC Address"  8  58  $GEN_MAC  --title "MAC ADDRESS"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -z $MAC1  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      MAC = " $GEN_MAC " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using MAC Address:  ${ BGN } $MAC ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      MAC = " $MAC1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using MAC Address:  ${ BGN } $MAC1 ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  VLAN1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set a Vlan(leave blank for default)"  8  58  --title "VLAN"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -z $VLAN1  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      VLAN1 = "Default" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      VLAN = "" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Vlan:  ${ BGN } $VLAN1 ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      VLAN = " ,tag= $VLAN1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Vlan:  ${ BGN } $VLAN1 ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  MTU1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Interface MTU Size (leave blank for default)"  8  58  --title "MTU SIZE"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -z $MTU1  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      MTU1 = "Default" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      MTU = "" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Interface MTU Size:  ${ BGN } $MTU1 ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      MTU = " ,mtu= $MTU1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      echo  -e " ${ DGN } Using Interface MTU Size:  ${ BGN } $MTU1 ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit-script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "START VIRTUAL MACHINE"  --yesno "Start VM when completed?"  10  58) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-01 07:30:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    echo  -e " ${ DGN } Start VM when completed:  ${ BGN } yes ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    START_VM = "yes" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-01 07:30:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    echo  -e " ${ DGN } Start VM when completed:  ${ BGN } no ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    START_VM = "no" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "ADVANCED SETTINGS COMPLETE"  --yesno " Ready to create HAOS  ${ BRANCH }  VM? "  --no-button Do-Over 10  58) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    echo  -e " ${ RD } Creating a HAOS VM using the above advanced settings ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    header_info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo  -e " ${ RD } Using Advanced Settings ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    advanced_settings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  start_script( )  {  
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "SETTINGS"  --yesno "Use Default Settings?"  --no-button Advanced 10  58) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    header_info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo  -e " ${ BL } Using Default Settings ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    default_settings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    header_info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo  -e " ${ RD } Using Advanced Settings ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    advanced_settings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 06:40:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								check_root
							 
						 
					
						
							
								
									
										
										
										
											2023-04-01 09:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								arch_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pve_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ssh_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								start_script
							 
						 
					
						
							
								
									
										
										
										
											2023-04-02 08:48:09 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-08-11 13:43:47 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								msg_info "Validating Storage" 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								while  read  -r line;  do  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  TAG = $( echo  $line  |  awk '{print $1}' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  TYPE = $( echo  $line  |  awk '{printf "%-10s", $2}' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  FREE = $( echo  $line  |  numfmt --field 4-6 --from-unit= K --to= iec --format %.2f |  awk '{printf( "%9sB", $6)}' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ITEM = "   Type:  $TYPE  Free:  $FREE   " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  OFFSET = 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  [ [  $(( ${# ITEM }  +  $OFFSET ))  -gt ${ MSG_MAX_LENGTH :- }  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MSG_MAX_LENGTH = $(( ${# ITEM }  +  $OFFSET )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  STORAGE_MENU += ( " $TAG "  " $ITEM "  "OFF" ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								done  < <( pvesm status -content images |  awk 'NR>1' )  
						 
					
						
							
								
									
										
										
										
											2022-08-11 13:43:47 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VALID = $( pvesm status -content images |  awk 'NR>1' )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  -z " $VALID "  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  msg_error "Unable to detect a valid storage location." 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-29 19:34:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  exit 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								elif  [  $(( ${# STORAGE_MENU [@] }  /  3 ))  -eq 1  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  STORAGE = ${ STORAGE_MENU [0] } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  while  [  -z " ${ STORAGE : +x } "  ] ;  do 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-22 06:38:43 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  [  -n " $SPINNER_PID "  ]  &&  ps -p $SPINNER_PID  > /dev/null;  then  kill  $SPINNER_PID  > /dev/null;  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    printf  "\e[?25h" 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    STORAGE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "Storage Pools"  --radiolist \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-13 07:31:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      " Which storage pool you would like to use for  ${ HN } ?\nTo make a selection, use the Spacebar.\n "  \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      16  $(( $MSG_MAX_LENGTH  +  23 ))  6  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      " ${ STORAGE_MENU [@] } "  3>& 1  1>& 2  2>& 3)  ||  exit 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								msg_ok " Using  ${ CL } ${ BL } $STORAGE ${ CL }   ${ GN } for Storage Location. " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								msg_ok " Virtual Machine ID is  ${ CL } ${ BL } $VMID ${ CL } . " 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-06 13:04:17 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								msg_info " Retrieving the URL for Home Assistant  ${ BRANCH }  Disk Image " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  [  " $BRANCH "  = =  " $dev "  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2023-10-18 21:06:28 +13:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  URL = https://os-artifacts.home-assistant.io/${ BRANCH } /haos_ova-${ BRANCH } .qcow2.xz
							 
						 
					
						
							
								
									
										
										
										
											2022-08-13 15:08:00 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								else  
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  URL = https://github.com/home-assistant/operating-system/releases/download/${ BRANCH } /haos_ova-${ BRANCH } .qcow2.xz
							 
						 
					
						
							
								
									
										
										
										
											2022-08-13 15:08:00 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								msg_ok " ${ CL } ${ BL } ${ URL } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								wget -q --show-progress $URL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  -en "\e[1A\e[0K"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								FILE = $( basename $URL )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								msg_ok " Downloaded  ${ CL } ${ BL } haos_ova- ${ BRANCH } .qcow2.xz ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								msg_info "Extracting KVM Disk Image" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								unxz $FILE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								STORAGE_TYPE = $( pvesm status -storage $STORAGE  |  awk 'NR>1 {print $2}' )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								case  $STORAGE_TYPE  in 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								nfs |  dir) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  DISK_EXT = ".raw" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  DISK_REF = " $VMID / " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  DISK_IMPORT = "-format raw" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  THIN = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-16 01:19:16 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								btrfs |  local-zfs) 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  DISK_EXT = ".raw" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  DISK_REF = " $VMID / " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  DISK_IMPORT = "-format raw" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  FORMAT = ",efitype=4m" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  THIN = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								esac  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  i in { 0,1} ;  do  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  disk = " DISK $i " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  eval  DISK${ i } = vm-${ VMID } -disk-${ i } ${ DISK_EXT :- } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  eval  DISK${ i } _REF = ${ STORAGE } :${ DISK_REF :- } ${ !disk } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								msg_ok "Extracted KVM Disk Image" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								msg_info "Creating HAOS VM" 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-02 11:26:00 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								qm create $VMID  -agent 1${ MACHINE }  -tablet 0  -localtime 1  -bios ovmf${ CPU_TYPE }  -cores $CORE_COUNT  -memory $RAM_SIZE  \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-10 23:20:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -name $HN  -tags proxmox-helper-scripts -net0 virtio,bridge= $BRG ,macaddr= $MAC $VLAN $MTU  -onboot 1  -ostype l26 -scsihw virtio-scsi-pci
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								pvesm alloc $STORAGE  $VMID  $DISK0  4M 1>& /dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								qm importdisk $VMID  ${ FILE %.* }  $STORAGE  ${ DISK_IMPORT :- }  1>& /dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								qm set  $VMID  \
 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-24 15:08:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -efidisk0 ${ DISK0_REF } ${ FORMAT }  \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-31 17:26:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -scsi0 ${ DISK1_REF } ,${ DISK_CACHE } ${ THIN } size = 32G \
 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-24 15:08:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -boot order = scsi0 \
 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-16 03:41:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -description " <div align='center'><a href='https://Helper-Scripts.com' target='_blank' rel='noopener noreferrer'><img src='https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo-81x112.png'/></a>
 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-27 09:40:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Home Assistant OS 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <a href = 'https://ko-fi.com/D1D7EP4GF' ><img src = 'https://img.shields.io/badge/☕-Buy me a coffee-blue'  /></a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </div>"  >/dev/null
 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 23:48:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								msg_ok " Created HAOS VM  ${ CL } ${ BL } ( ${ HN } ) " 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  [  " $START_VM "  = =  "yes"  ] ;  then  
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  msg_info "Starting Home Assistant OS VM" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  qm start $VMID 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  msg_ok "Started Home Assistant OS VM" 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 22:57:00 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								msg_ok "Completed Successfully!\n"