|  |  |  | @ -335,40 +335,57 @@ function update_script() { | 
			
		
	
		
			
				
					|  |  |  |  | clear | 
			
		
	
		
			
				
					|  |  |  |  | header_info | 
			
		
	
		
			
				
					|  |  |  |  | cd /opt/zigbee2mqtt | 
			
		
	
		
			
				
					|  |  |  |  | msg_info "Checking for Backup Directory" | 
			
		
	
		
			
				
					|  |  |  |  | #!/bin/bash | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | stop_zigbee2mqtt() { | 
			
		
	
		
			
				
					|  |  |  |  |   if which systemctl 2> /dev/null > /dev/null; then | 
			
		
	
		
			
				
					|  |  |  |  |     echo "Shutting down Zigbee2MQTT..." | 
			
		
	
		
			
				
					|  |  |  |  |     sudo systemctl stop zigbee2mqtt | 
			
		
	
		
			
				
					|  |  |  |  |   else | 
			
		
	
		
			
				
					|  |  |  |  |     echo "Skipped stopping Zigbee2MQTT, no systemctl found" | 
			
		
	
		
			
				
					|  |  |  |  |   fi | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | start_zigbee2mqtt() { | 
			
		
	
		
			
				
					|  |  |  |  |   if which systemctl 2> /dev/null > /dev/null; then | 
			
		
	
		
			
				
					|  |  |  |  |     echo "Starting Zigbee2MQTT..." | 
			
		
	
		
			
				
					|  |  |  |  |     sudo systemctl start zigbee2mqtt | 
			
		
	
		
			
				
					|  |  |  |  |   else | 
			
		
	
		
			
				
					|  |  |  |  |     echo "Skipped starting Zigbee2MQTT, no systemctl found" | 
			
		
	
		
			
				
					|  |  |  |  |   fi | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | set -e | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | if [ -d data-backup ]; then | 
			
		
	
		
			
				
					|  |  |  |  |    echo "ERROR: Backup directory exists. May be previous restoring was failed?" | 
			
		
	
		
			
				
					|  |  |  |  |    echo "1. Save 'data-backup' and 'data' dirs to safe location to make possibility to restore config later." | 
			
		
	
		
			
				
					|  |  |  |  |    echo "2. Manually delete 'data-backup' dir and try again." | 
			
		
	
		
			
				
					|  |  |  |  |    exit 1 | 
			
		
	
		
			
				
					|  |  |  |  |   echo "ERROR: Backup directory exists. May be previous restoring was failed?" | 
			
		
	
		
			
				
					|  |  |  |  |   echo "1. Save 'data-backup' and 'data' dirs to safe location to make possibility to restore config later." | 
			
		
	
		
			
				
					|  |  |  |  |   echo "2. Manually delete 'data-backup' dir and try again." | 
			
		
	
		
			
				
					|  |  |  |  |   exit 1 | 
			
		
	
		
			
				
					|  |  |  |  | fi | 
			
		
	
		
			
				
					|  |  |  |  | msg_ok "No Backup Directory Exists" | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | msg_info "Stopping Zigbee2MQTT" | 
			
		
	
		
			
				
					|  |  |  |  | systemctl stop zigbee2mqtt | 
			
		
	
		
			
				
					|  |  |  |  | msg_ok "Stopped Zigbee2MQTT" | 
			
		
	
		
			
				
					|  |  |  |  | stop_zigbee2mqtt | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | echo "Creating backup of configuration..." | 
			
		
	
		
			
				
					|  |  |  |  | cp -R data data-backup || { echo "Failed to create backup."; exit 1; } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | echo "Initiating update" | 
			
		
	
		
			
				
					|  |  |  |  | if ! git pull; then | 
			
		
	
		
			
				
					|  |  |  |  |   echo "Update failed, temporarily storing changes and trying again." | 
			
		
	
		
			
				
					|  |  |  |  |   git stash && git pull || (echo "Update failed even after storing changes. Aborting."; exit 1) | 
			
		
	
		
			
				
					|  |  |  |  | fi | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | msg_info "Creating Backup of Configuration" | 
			
		
	
		
			
				
					|  |  |  |  | cp -R data data-backup | 
			
		
	
		
			
				
					|  |  |  |  | msg_ok "Created Backup of Configuration" | 
			
		
	
		
			
				
					|  |  |  |  | echo "Acquiring necessary components..." | 
			
		
	
		
			
				
					|  |  |  |  | npm ci || { echo "Failed to install necessary components."; exit 1; } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | msg_info "Updating Zigbee2MQTT" | 
			
		
	
		
			
				
					|  |  |  |  | git pull &>/dev/null | 
			
		
	
		
			
				
					|  |  |  |  | msg_ok "Updated Zigbee2MQTT" | 
			
		
	
		
			
				
					|  |  |  |  | echo "Restoring configuration..." | 
			
		
	
		
			
				
					|  |  |  |  | cp -R data-backup/* data || { echo "Failed to restore configuration."; exit 1; } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | msg_info "Installing Dependencies" | 
			
		
	
		
			
				
					|  |  |  |  | npm ci &>/dev/null | 
			
		
	
		
			
				
					|  |  |  |  | msg_ok "Installed Dependencies" | 
			
		
	
		
			
				
					|  |  |  |  | rm -rf data-backup || { echo "Failed to remove backup directory."; exit 1; } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | msg_info "Restoring Configuration" | 
			
		
	
		
			
				
					|  |  |  |  | cp -R data-backup/* data | 
			
		
	
		
			
				
					|  |  |  |  | rm -rf data-backup | 
			
		
	
		
			
				
					|  |  |  |  | msg_ok "Restored Configuration" | 
			
		
	
		
			
				
					|  |  |  |  | start_zigbee2mqtt | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | msg_info "Starting Zigbee2MQTT" | 
			
		
	
		
			
				
					|  |  |  |  | systemctl start zigbee2mqtt | 
			
		
	
		
			
				
					|  |  |  |  | msg_ok "Started Zigbee2MQTT" | 
			
		
	
		
			
				
					|  |  |  |  | msg_ok "Update Successful" | 
			
		
	
		
			
				
					|  |  |  |  | echo "Done!" | 
			
		
	
		
			
				
					|  |  |  |  | exit | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | clear | 
			
		
	
	
		
			
				
					|  |  |  | 
 |