Skip to content

Commit 68db5c4

Browse files
author
guoping.liu
committed
update backup method for future OTA
1 parent 508903b commit 68db5c4

File tree

1 file changed

+58
-23
lines changed

1 file changed

+58
-23
lines changed

packages/bsp/thirdreality/common/hubv3-usb-sync.sh

Lines changed: 58 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ on_exit() {
3535
# Custom actions before the script exits
3636
echo "Running cleanup tasks..."
3737
if [ -e "/usr/local/bin/supervisor" ]; then
38-
/usr/local/bin/supervisor led sys_event_off || true
38+
/usr/local/bin/supervisor led clear || true
3939
fi
4040

4141
echo "System finished to install deb packages. " | wall
@@ -1028,17 +1028,61 @@ install_supervisor_deb() {
10281028
return 0
10291029
}
10301030

1031+
is_backup_capable() {
1032+
if dpkg -l | grep -q "^ii\s*thirdreality-hacore"; then
1033+
return 0
1034+
fi
1035+
if dpkg -l | grep -q "^ii\s*thirdreality-zigbee-mqtt"; then
1036+
return 0
1037+
fi
1038+
return 1
1039+
}
1040+
1041+
perform_backup_if_ready() {
1042+
local backup_dir="/mnt/R3Backup"
1043+
local flag_primary="$backup_dir/.enable-backup"
1044+
local flag_alt="$backup_dir/.enable_backup"
1045+
1046+
if [ ! -d "$backup_dir" ] || [ ! -x "/usr/local/bin/supervisor" ]; then
1047+
return 0
1048+
fi
1049+
1050+
if [ ! -f "$flag_primary" ] && [ ! -f "$flag_alt" ]; then
1051+
return 0
1052+
fi
1053+
1054+
if is_backup_capable; then
1055+
/usr/local/bin/supervisor led clear || true
1056+
echo "Found .enable-backup flag, forcing backup..."
1057+
echo "System found .enable-backup flag, forcing backup..." | wall
1058+
/usr/local/bin/supervisor setting backup || true
1059+
rm -f "$flag_primary" "$flag_alt"
1060+
echo "Backup completed, .enable-backup flag removed"
1061+
/usr/local/bin/supervisor led clear || true
1062+
else
1063+
echo "Backup flag detected but required packages not installed; deferring backup."
1064+
fi
1065+
}
1066+
10311067
validate_config() {
1032-
# Validate configuration and clean up invalid flags
1033-
if [ -d "/mnt/R3Backup" ] && { [ -f "/mnt/R3Backup/.enable-backup" ] || [ -f "/mnt/R3Backup/.enable_backup" ]; }; then
1034-
# Check if thirdreality-python3 package is installed
1035-
if ! dpkg -l | grep -q "^ii\s*thirdreality-python3"; then
1036-
echo "Warning: .enable-backup flag found but thirdreality-python3 package not installed"
1037-
echo "Removing .enable-backup flag..."
1038-
rm -f "/mnt/R3Backup/.enable-backup" "/mnt/R3Backup/.enable_backup"
1039-
echo ".enable-backup flag removed due to missing thirdreality-python3 package"
1040-
fi
1068+
local backup_dir="/mnt/R3Backup"
1069+
local flag_primary="$backup_dir/.enable-backup"
1070+
local flag_alt="$backup_dir/.enable_backup"
1071+
1072+
if [ ! -d "$backup_dir" ]; then
1073+
return 0
1074+
fi
1075+
1076+
if [ ! -f "$flag_primary" ] && [ ! -f "$flag_alt" ]; then
1077+
return 0
1078+
fi
1079+
1080+
if is_backup_capable; then
1081+
return 0
10411082
fi
1083+
1084+
echo "Warning: Backup flag present but required packages are missing. Removing flag..."
1085+
rm -f "$flag_primary" "$flag_alt"
10421086
}
10431087

10441088
main_procedure()
@@ -1054,6 +1098,7 @@ main_procedure()
10541098

10551099
# install supervisor
10561100
install_supervisor_deb
1101+
perform_backup_if_ready
10571102

10581103
# install board firmware
10591104
install_board_flash_debs
@@ -1102,22 +1147,12 @@ main_procedure()
11021147

11031148
if [ -e "/usr/local/bin/supervisor" ]; then
11041149
/usr/bin/sync
1105-
/usr/local/bin/supervisor led sys_event_off || true
1150+
/usr/local/bin/supervisor led clear || true
11061151
fi
11071152

11081153
# Auto restore functionality
11091154
if [ -d "/mnt/R3Backup" ] && [ -e "/usr/local/bin/supervisor" ]; then
1110-
# Check if .enable-backup exists - force backup and exit
1111-
if [ -f "/mnt/R3Backup/.enable-backup" ] || [ -f "/mnt/R3Backup/.enable_backup" ]; then
1112-
/usr/local/bin/supervisor led sys_event_off || true
1113-
echo "Found .enable-backup flag, forcing backup..."
1114-
echo "System found .enable-backup flag, forcing backup..." | wall
1115-
/usr/local/bin/supervisor setting backup || true
1116-
rm -f "/mnt/R3Backup/.enable-backup" "/mnt/R3Backup/.enable_backup"
1117-
echo "Backup completed, .enable-backup flag removed"
1118-
/usr/local/bin/supervisor led sys_event_off || true
1119-
return 0
1120-
fi
1155+
perform_backup_if_ready
11211156

11221157
# Check if .enable-restore exists - force restore if flag is present
11231158
if [ -f "/mnt/R3Backup/.enable-restore" ] || [ -f "/mnt/R3Backup/.enable_restore" ]; then
@@ -1127,7 +1162,7 @@ main_procedure()
11271162
echo "Found .enable-restore flag, attempting to restore..."
11281163
echo "System found .enable-restore flag, attempting to restore..." | wall
11291164
/usr/local/bin/supervisor setting restore || true
1130-
/usr/local/bin/supervisor led sys_event_off || true
1165+
/usr/local/bin/supervisor led clear || true
11311166
echo "Restore completed, .enable-restore flag removed"
11321167
rm -f "/mnt/R3Backup/.enable-restore" "/mnt/R3Backup/.enable_restore"
11331168
else

0 commit comments

Comments
 (0)