From 5f711cd01d7eec2faa54796e6870ab8c3745685f Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 3 May 2021 23:36:35 +0200 Subject: [PATCH] extend wifi restore to work with mem copy --- home.admin/config.scripts/internet.wifi.sh | 44 ++++++++++++++++------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/home.admin/config.scripts/internet.wifi.sh b/home.admin/config.scripts/internet.wifi.sh index 4698be96e..4f00270d1 100755 --- a/home.admin/config.scripts/internet.wifi.sh +++ b/home.admin/config.scripts/internet.wifi.sh @@ -81,25 +81,45 @@ update_config=1" # or when WIFI is inactive but a wpa_supplicant.conf exists restore this elif [ "$1" == "backup-restore" ]; then - # check if HDD already exists + # check if HDD backup location is available (for backup or restore) + hddBackupLocationAvailable=0 if [ -d /mnt/hdd/app-data ]; then - echo "# running backup/restore wifi settings" - else - echo "error='no hdd'" - exit 1 + hddBackupLocationAvailable=1 fi + echo "hddBackupLocationAvailable=${hddBackupLocationAvailable}" + + hddRestoreConfigAvailable=$(sudo ls /mnt/hdd/app-data/wpa_supplicant.conf 2>/dev/null | grep -c "wpa_supplicant.conf") + echo "hddRestoreConfigAvailable=${hddRestoreConfigAvailable}" + + # check if mem copy of wifi config is available (for restore only) + # this should be available if a backup on HDD exists and HDD is not mounted yet but was inspected by datadrive script + memRestoreConfigAvailable=$(sudo ls /var/cache/raspiblitz/wpa_supplicant.conf 2>/dev/null | grep -c "wpa_supplicant.conf") + echo "memRestoreConfigAvailable=${memRestoreConfigAvailable}" - wifiBackUpExists=$() if [ ${wifiIsSet} -eq 1 ]; then - # BACKUP latest wifi settings to HDD - sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /mnt/hdd/app-data/wpa_supplicant.conf - echo "wifiRestore=0" - echo "wifiBackup=1" + # BACKUP latest wifi settings to HDD if available + if [ ${hddBackupLocationAvailable} -eq 1 ]; then + sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /mnt/hdd/app-data/wpa_supplicant.conf + echo "wifiRestore=0" + echo "wifiBackup=1" + else + echo "wifiRestore=0" + echo "wifiBackup=0" + fi exit 0 - elif [ -f /mnt/hdd/app-data/wpa_supplicant.conf ]; then + elif [ ${hddRestoreConfigAvailable} -eq 1 ]; then # RESTORE backuped wifi settings from HDD to RaspiBlitz sudo cp /mnt/hdd/app-data/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf - echo "# restoring old wifi settings ... wait 4 secounds to connect" + echo "# restoring old wifi settings from HDD ... wait 4 secounds to connect" + sudo wpa_cli -i wlan0 reconfigure 1>/dev/null + sleep 4 + echo "wifiRestore=1" + echo "wifiBackup=0" + exit 0 + elif [ ${hddRestoreConfigAvailable} -eq 1 ]; then + # RESTORE backuped wifi settings from MEMCOPY to RaspiBlitz + sudo cp /var/cache/raspiblitz/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf + echo "# restoring old wifi settings from MEMCOPY ... wait 4 secounds to connect" sudo wpa_cli -i wlan0 reconfigure 1>/dev/null sleep 4 echo "wifiRestore=1"