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