mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-25 23:45:39 +00:00
Online theme downloader/updater
This commit is contained in:
parent
cf978a4761
commit
800a160c50
|
@ -21,10 +21,12 @@ default_splash_file="/var/config/emulationstation/.emulationstation/resources/gr
|
||||||
multi_user_data_folder="$rdhome/multi-user-data" # The default location of multi-user environment profiles
|
multi_user_data_folder="$rdhome/multi-user-data" # The default location of multi-user environment profiles
|
||||||
multi_user_emulator_config_dirs="$emuconfigs/defaults/retrodeck//multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode
|
multi_user_emulator_config_dirs="$emuconfigs/defaults/retrodeck//multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode
|
||||||
backups_folder="$rdhome/backups" # A standard location for backup file storage
|
backups_folder="$rdhome/backups" # A standard location for backup file storage
|
||||||
|
rd_es_themes="/app/share/emulationstation/themes" # The directory where themes packaged with RetroDECK are stored
|
||||||
lockfile="/var/config/retrodeck/.lock" # where the lockfile is located
|
lockfile="/var/config/retrodeck/.lock" # where the lockfile is located
|
||||||
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path
|
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path
|
||||||
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
|
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
|
||||||
rd_repo="https://github.com/XargonWan/RetroDECK" # The URL of the main RetroDECK GitHub repo
|
rd_repo="https://github.com/XargonWan/RetroDECK" # The URL of the main RetroDECK GitHub repo
|
||||||
|
es_themes_list="https://gitlab.com/es-de/themes/themes-list/-/raw/master/themes.json" # The URL of the ES-DE 2.0 themes list
|
||||||
|
|
||||||
# Config files for emulators with single config files
|
# Config files for emulators with single config files
|
||||||
|
|
||||||
|
|
|
@ -760,6 +760,62 @@ configurator_check_bios_files_advanced() {
|
||||||
configurator_tools_and_troubleshooting_dialog
|
configurator_tools_and_troubleshooting_dialog
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configurator_online_theme_downloader() {
|
||||||
|
local online_themes=()
|
||||||
|
local local_themes=()
|
||||||
|
readarray -t online_themes < <(curl -s $es_themes_list | jq -r '.themeSets[] | "\(.name)\n\(.url)"')
|
||||||
|
|
||||||
|
for (( i=0; i<${#online_themes[@]}; i+=2 )); do
|
||||||
|
local name=${online_themes[$i]}
|
||||||
|
local url=${online_themes[$i+1]}
|
||||||
|
|
||||||
|
if [[ -d "$themes_folder/$(basename "$url" .git)" ]] || [[ -d "$rd_es_themes/$(basename "$url" .git)" ]]; then
|
||||||
|
local_themes=("${local_themes[@]}" "true" "$name" "$url")
|
||||||
|
else
|
||||||
|
local_themes=("${local_themes[@]}" "false" "$name" "$url")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
choice=$(zenity \
|
||||||
|
--list --width=1200 --height=720 \
|
||||||
|
--checklist --hide-column=3 --ok-label="Download/Update Themes" \
|
||||||
|
--separator="," --print-column=3 \
|
||||||
|
--text="Choose which themes to download:" \
|
||||||
|
--column "Downloaded" \
|
||||||
|
--column "Theme" \
|
||||||
|
--column "Theme URL" \
|
||||||
|
"${local_themes[@]}")
|
||||||
|
|
||||||
|
local rc=$?
|
||||||
|
if [[ $rc == "0" && ! -z $choice ]]; then
|
||||||
|
(
|
||||||
|
IFS="," read -ra chosen_themes <<< "$choice"
|
||||||
|
for theme in "${chosen_themes[@]}"; do
|
||||||
|
if [[ ! -d "$themes_folder/$(basename $theme .git)" ]] && [[ ! -d "$rd_es_themes/$(basename $theme .git)" ]]; then
|
||||||
|
echo "# Downloading $(basename "$theme" .git)"
|
||||||
|
git clone -q "$theme" "$themes_folder/$(basename $theme .git)"
|
||||||
|
elif [[ -d "$themes_folder/$(basename $theme .git)" ]] && [[ ! -d "$rd_es_themes/$(basename $theme .git)" ]]; then
|
||||||
|
cd "$themes_folder/$(basename $theme .git)"
|
||||||
|
echo "# Checking $(basename $theme .git) for updates"
|
||||||
|
git pull -fq
|
||||||
|
cd "$rdhome"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
) |
|
||||||
|
zenity --progress --pulsate \
|
||||||
|
--icon-name=net.retrodeck.retrodeck \
|
||||||
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
|
--title="Downloading Themes" \
|
||||||
|
--no-cancel \
|
||||||
|
--auto-close
|
||||||
|
|
||||||
|
configurator_generic_dialog "The theme downloads and updates have been completed.\n\nYou may need to exit RetroDECK and start it again for the new themes to be available."
|
||||||
|
configurator_tools_and_troubleshooting_dialog
|
||||||
|
else
|
||||||
|
configurator_tools_and_troubleshooting_dialog
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
configurator_tools_and_troubleshooting_dialog() {
|
configurator_tools_and_troubleshooting_dialog() {
|
||||||
choice=$(zenity --list --title="RetroDECK Configurator Utility - Change Options" --cancel-label="Back" \
|
choice=$(zenity --list --title="RetroDECK Configurator Utility - Change Options" --cancel-label="Back" \
|
||||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
|
||||||
|
@ -768,7 +824,8 @@ configurator_tools_and_troubleshooting_dialog() {
|
||||||
"Multi-file game structure check" "Verify the proper structure of multi-file or multi-disc games" \
|
"Multi-file game structure check" "Verify the proper structure of multi-file or multi-disc games" \
|
||||||
"Basic BIOS file check" "Show a list of systems that BIOS files are found for" \
|
"Basic BIOS file check" "Show a list of systems that BIOS files are found for" \
|
||||||
"Advanced BIOS file check" "Show advanced information about common BIOS files" \
|
"Advanced BIOS file check" "Show advanced information about common BIOS files" \
|
||||||
"Compress Games" "Compress games to CHD format for systems that support it" )
|
"Compress Games" "Compress games to CHD format for systems that support it" \
|
||||||
|
"Download/Update Themes" "Download new themes for RetroDECK or update existing ones" )
|
||||||
|
|
||||||
case $choice in
|
case $choice in
|
||||||
|
|
||||||
|
@ -793,6 +850,10 @@ configurator_tools_and_troubleshooting_dialog() {
|
||||||
configurator_compress_games_dialog
|
configurator_compress_games_dialog
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"Download/Update Themes" )
|
||||||
|
configurator_online_theme_downloader
|
||||||
|
;;
|
||||||
|
|
||||||
"" ) # No selection made or Back button clicked
|
"" ) # No selection made or Back button clicked
|
||||||
configurator_welcome_dialog
|
configurator_welcome_dialog
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Reference in a new issue