From b91c451fdd279cc5078f155747d9d9bc3e59b2a2 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 18 May 2023 12:23:45 -0400 Subject: [PATCH] Added more safety around the cooker reset option --- retrodeck.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 9ff19a18..cf721e9a 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -106,6 +106,7 @@ if [ -f "$lockfile" ]; then if [ "$hard_version" != "$version" ]; then echo "Config file's version is $version but the actual version is $hard_version" if grep -qF "cooker" <<< $hard_version; then # If newly-installed version is a "cooker" build + configurator_generic_dialog "RetroDECK Cooker Warning" "RUNNING COOKER VERSIONS OF RETRODECK CAN BE EXTREMELY DANGEROUS AND ALL OF YOUR RETRODECK DATA\n(INCLUDING BIOS FILES, BORDERS, DOWNLOADED MEDIA, GAMELISTS, MODS, ROMS, SAVES, STATES, SCREENSHOTS, TEXTURE PACKS AND THEMES)\nARE AT RISK BY CONTINUING!" cooker_base_version=$(echo $hard_version | cut -d'-' -f2) choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Full Wipe and Fresh Install" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ @@ -117,11 +118,20 @@ if [ -f "$lockfile" ]; then echo "Skipping upgrade process for cooker build, updating stored version in retrodeck.cfg" set_setting_value $rd_conf "version" "$hard_version" retrodeck # Set version of currently running RetroDECK to updated retrodeck.cfg elif [[ $choice == "Full Wipe and Fresh Install" ]]; then # Remove all RetroDECK data and start a fresh install - echo "Removing RetroDECK data and starting fresh" - rm -rf /var - rm -rf "$HOME/retrodeck" - source /app/libexec/global.sh - finit + if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "This is going to remove all of the data in all locations used by RetroDECK!\n\n(INCLUDING BIOS FILES, BORDERS, DOWNLOADED MEDIA, GAMELISTS, MODS, ROMS, SAVES, STATES, SCREENSHOTS, TEXTURE PACKS AND THEMES)\n\nAre you sure you want to contine?") == "true" ]]; then + if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "Are you super sure?\n\nThere is no going back from this process, everything is gonzo.\nDust in the wind.\n\nYesterdays omelette.") == "true" ]]; then + if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "But are you super DUPER sure? We REAAAALLLLLYY want to make sure you know what is happening here.\n\nThe ~/retrodeck and ~/.var/app/net.retrodeck.retrodeck folders and ALL of their contents\nare about to be PERMANENTLY removed.\n\nStill sure you want to proceed?") == "true" ]]; then + configurator_generic_dialog "RetroDECK Cooker Reset" "Ok, if you're that sure, here we go!" + if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "(Are you actually being serious here? Because we are...\n\nNo backsies.)") == "true" ]]; then + echo "Removing RetroDECK data and starting fresh" + rm -rf /var + rm -rf "$HOME/retrodeck" + source /app/libexec/global.sh + finit + fi + fi + fi + fi fi else echo "Performing normal upgrade process for version" $cooker_base_version