mirror of
				https://github.com/tteck/Proxmox.git
				synced 2025-10-30 18:39:10 +00:00 
			
		
		
		
	
						commit
						4782b37752
					
				| @ -12,6 +12,41 @@ CL=`echo "\033[m"` | ||||
| BFR="\\r\\033[K" | ||||
| HOLD="-" | ||||
| CM="${GN}✓${CL}" | ||||
| set -o errexit | ||||
| set -o errtrace | ||||
| set -o nounset | ||||
| set -o pipefail | ||||
| shopt -s expand_aliases | ||||
| alias die='EXIT=$? LINE=$LINENO error_exit' | ||||
| trap die ERR | ||||
| trap cleanup EXIT | ||||
| 
 | ||||
| function error_exit() { | ||||
|   trap - ERR | ||||
|   local reason="Unknown failure occured." | ||||
|   local msg="${1:-$reason}" | ||||
|   local flag="${RD}‼ ERROR ${CL}$EXIT@$LINE" | ||||
|   echo -e "$flag $msg" 1>&2 | ||||
|   [ ! -z ${VMID-} ] && cleanup_vmid | ||||
|   exit $EXIT | ||||
| } | ||||
| 
 | ||||
| function cleanup_vmid() { | ||||
|   if $(qm status $VMID &>/dev/null); then | ||||
|     if [ "$(qm status $VMID | awk '{print $2}')" == "running" ]; then | ||||
|       qm stop $VMID | ||||
|     fi | ||||
|     qm destroy $VMID | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| function cleanup() { | ||||
|   popd >/dev/null | ||||
|   rm -rf $TEMP_DIR | ||||
| } | ||||
| 
 | ||||
| TEMP_DIR=$(mktemp -d) | ||||
| pushd $TEMP_DIR >/dev/null | ||||
| 
 | ||||
| while true; do | ||||
|     read -p "This will create a New Home Assistant OS VM. Proceed(y/n)?" yn | ||||
| @ -171,51 +206,6 @@ function start_script() { | ||||
| 
 | ||||
| start_script | ||||
| 
 | ||||
| set -o errexit | ||||
| set -o errtrace | ||||
| set -o nounset | ||||
| set -o pipefail | ||||
| shopt -s expand_aliases | ||||
| alias die='EXIT=$? LINE=$LINENO error_exit' | ||||
| trap die ERR | ||||
| trap cleanup EXIT | ||||
| function error_exit() { | ||||
|   trap - ERR | ||||
|   local DEFAULT='Unknown failure occured.' | ||||
|   local REASON="\e[97m${1:-$DEFAULT}\e[39m" | ||||
|   local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE" | ||||
|   msg "$FLAG $REASON" | ||||
|   [ ! -z ${VMID-} ] && cleanup_vmid | ||||
|   exit $EXIT | ||||
| } | ||||
| function warn() { | ||||
|   local REASON="\e[97m$1\e[39m" | ||||
|   local FLAG="\e[93m[WARNING]\e[39m" | ||||
|   msg "$FLAG $REASON" | ||||
| } | ||||
| function info() { | ||||
|   local REASON="$1" | ||||
|   local FLAG="\e[36m[INFO]\e[39m" | ||||
|   msg "$FLAG $REASON" | ||||
| } | ||||
| function msg() { | ||||
|   local TEXT="$1" | ||||
|   echo -e "$TEXT" | ||||
| } | ||||
| function cleanup_vmid() { | ||||
|   if $(qm status $VMID &>/dev/null); then | ||||
|     if [ "$(qm status $VMID | awk '{print $2}')" == "running" ]; then | ||||
|       qm stop $VMID | ||||
|     fi | ||||
|     qm destroy $VMID | ||||
|   fi | ||||
| } | ||||
| function cleanup() { | ||||
|   popd >/dev/null | ||||
|   rm -rf $TEMP_DIR | ||||
| } | ||||
| TEMP_DIR=$(mktemp -d) | ||||
| pushd $TEMP_DIR >/dev/null | ||||
| while read -r line; do | ||||
|   TAG=$(echo $line | awk '{print $1}') | ||||
|   TYPE=$(echo $line | awk '{printf "%-10s", $2}') | ||||
| @ -228,7 +218,7 @@ while read -r line; do | ||||
|   STORAGE_MENU+=( "$TAG" "$ITEM" "OFF" ) | ||||
| done < <(pvesm status -content images | awk 'NR>1') | ||||
| if [ $((${#STORAGE_MENU[@]}/3)) -eq 0 ]; then | ||||
|   warn "'Disk image' needs to be selected for at least one storage location." | ||||
|   echo -e "'Disk image' needs to be selected for at least one storage location." | ||||
|   die "Unable to detect valid storage location." | ||||
| elif [ $((${#STORAGE_MENU[@]}/3)) -eq 1 ]; then | ||||
|   STORAGE=${STORAGE_MENU[0]} | ||||
| @ -282,7 +272,7 @@ msg_ok "Created HAOS VM ${CL}${BL}${VM_NAME}" | ||||
| 
 | ||||
| msg_info "Adding Serial Port and Configuring Console" | ||||
| trap ' | ||||
|   warn "Unable to configure serial port. VM is still functional." | ||||
|   echo -e "Unable to configure serial port. VM is still functional." | ||||
|   if [ "$(qm config $VMID | sed -n ''/serial0/p'')" != "" ]; then | ||||
|     qm set $VMID --delete serial0 >/dev/null | ||||
|   fi | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user