diff --git a/packages/sysutils/busybox/scripts/init b/packages/sysutils/busybox/scripts/init index 5d99a429e4..8a22c4a00c 100755 --- a/packages/sysutils/busybox/scripts/init +++ b/packages/sysutils/busybox/scripts/init @@ -772,8 +772,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 "" @@ -786,7 +794,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