diff --git a/packages/sysutils/busybox/scripts/init b/packages/sysutils/busybox/scripts/init index 56e8403d44..69170c6986 100755 --- a/packages/sysutils/busybox/scripts/init +++ b/packages/sysutils/busybox/scripts/init @@ -779,8 +779,16 @@ return 0 fi - # remove temporary folder if exist from previous run - rm -fr "$UPDATE_DIR/.tmp" &>/dev/null + if [ -d $UPDATE_DIR/.tmp ]; then + echo "Failed update detected - performing recovery." + echo "" + do_cleanup + StartProgress countdown "Normal startup in 10s... " 10 "NOW" + return 0 + fi + + mkdir -p $UPDATE_DIR/.tmp &>/dev/null + sync echo "UPGRADE IN PROGRESS" echo "" @@ -793,7 +801,6 @@ echo "Found new .tar archive" UPDATE_FILENAME="$UPDATE_TAR" StartProgress spinner "Extracting contents of archive... " - mkdir -p $UPDATE_DIR/.tmp &>/dev/null tar -xf "$UPDATE_TAR" -C $UPDATE_DIR/.tmp 1>/dev/null 2>/tmp/tarresult.txt || TARRESULT="1" if [ "${TARRESULT}" -eq "0" ]; then