@ -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
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