diff --git a/functions/checks.sh b/functions/checks.sh index bb93b322..7b76d82f 100644 --- a/functions/checks.sh +++ b/functions/checks.sh @@ -59,6 +59,7 @@ check_for_version_update() { # configurator_generic_dialog "RetroDECK Online Update" "The update process is now complete!\n\nPlease restart RetroDECK to keep the fun going." # exit 1 # fi + # TODO: add the logic to check and update the branch from the configuration file choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" --extra-button="Ignore this version" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Update Available" \ diff --git a/functions/functions.sh b/functions/functions.sh index 16f27d3f..f5ae5368 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -562,6 +562,7 @@ easter_eggs() { cp -f "$new_splash_file" "$current_splash_file" # Deploy assigned splash screen } +# TODO: this function is not yet used branch_selector() { # Fetch branches from GitHub API excluding "main" branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '$4 != "main" {print $4}') @@ -577,18 +578,43 @@ branch_selector() { # TODO: logging - Creating array of branch names # Display branches in a Zenity list dialog - selected_branch=$(zenity --list --title="Select Branch" --column="Branch" --width=1280 --height=800 "${branch_array[@]}") + selected_branch=$( + zenity --list \ + --icon-name=net.retrodeck.retrodeck \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Configurator Cooker Branch - Select Branch" \ + --column="Branch" --width=1280 --height=800 "${branch_array[@]}" + ) # TODO: logging - Displaying branches in Zenity list dialog # Display warning message if [ $selected_branch ]; then - zenity --question --text="Are you sure you want to move to \"$selected_branch\" branch?" + zenity --question --icon-name=net.retrodeck.retrodeck --no-wrap \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Configurator Cooker Branch - Switch Branch" \ + --text="Are you sure you want to move to \"$selected_branch\" branch?" # Output selected branch echo "Selected branch: $selected_branch" # TODO: logging - Outputting selected branch - zenity --info --text="The data will be now downloaded, please stand by." - # Do stuff here + # TODO: write the branch into the config file + # TODO: check what is the last release for $selected_branch + # TODO: form a proper url: $flatpak_file_url + configurator_generic_dialog "RetroDECK Online Update" "The update process may take several minutes.\n\nAfter the update is complete, RetroDECK will close. When you run it again you will be using the latest version." + ( + local desired_flatpak_file=$(curl --silent $flatpak_file_url | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/') + mkdir -p "$rdhome/RetroDECK_Updates" + wget -P "$rdhome/RetroDECK_Updates" $desired_flatpak_file + flatpak-spawn --host flatpak remove --noninteractive -y net.retrodeck.retrodeck # Remove current version before installing new one, to avoid duplicates + flatpak-spawn --host flatpak install --user --bundle --noninteractive -y "$rdhome/RetroDECK_Updates/RetroDECK-cooker.flatpak" + rm -rf "$rdhome/RetroDECK_Updates" # Cleanup old bundles to save space + ) | + zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Updater" \ + --text="RetroDECK is updating to the latest \"$selected_branch\" version, please wait." + configurator_generic_dialog "RetroDECK Online Update" "The update process is now complete!\n\nPlease restart RetroDECK to keep the fun going." + exit 1 else - zenity --warning --text="No branch selected, exiting." + configurator_generic_dialog "No branch selected, exiting." # TODO: logging fi }