diff --git a/.update/Periphery Synthetic EP.sh b/.update/Periphery Synthetic EP.sh new file mode 100755 index 0000000..43dd394 --- /dev/null +++ b/.update/Periphery Synthetic EP.sh @@ -0,0 +1,14 @@ +run_update() { + local installPath="${HOME}/.local/games" + local gameName=""periphery-synthetic-ep-linux-x64.zip"" +for i in ~/Downloads ~/Desktop ; do + find $i -type f -name "$gameName" -exec mv -v {} "${cache}/" \; + done + # If the file is still not available abort. + if [[ ! -f "${cache}/$gameName" ]]; then + dialog --backtitle "Linux Game Manager" --msgbox "Couldn't find $gameName. Please download the file and try again." -1 -1 + exit 1 + fi +mkdir -p "${installPath}/periphery-synthetic-ep" +unzip -od "${installPath}/periphery-synthetic-ep" "${cache}/periphery-synthetic-ep-linux-x64.zip" +} diff --git a/linux-game-manager.sh b/linux-game-manager.sh index a84fa42..63a27c0 100755 --- a/linux-game-manager.sh +++ b/linux-game-manager.sh @@ -315,6 +315,40 @@ game_removal() { } +# update games +game_update() { + mapfile -t lines < <(find .update -type f -iname '*.sh' 2> /dev/null) + if [[ ${#lines} -eq 0 ]]; then + echo "No games found." + exit 0 + fi + # Create the menu of updatable games + declare -a menuList + for i in "${lines[@]}" ; do + menuList+=("${i}" "${i##*/}") + done + menuList+=("Donate" "Donate") + menuList+=("Become a Patron" "Become a Patron") + local game="$(dialog --backtitle "Audio Game Updater" \ + --clear \ + --no-tags \ + --menu "Please select a game to update" 0 0 0 "${menuList[@]}" --stdout)" + if [[ ${#game} -gt 0 ]]; then + if [[ "$game" == "Donate" ]]; then + open_url "https://ko-fi.com/stormux" + exit 0 + fi + if [[ "$game" == "Become a Patron" ]]; then + open_url "https://2mb.games/product/2mb-patron/" + exit 0 + fi + fi + source "${game}" + run_update + exit 0 +} + + # launch games that are installed game_launcher() { mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null) @@ -374,7 +408,7 @@ game_launcher() { ;; *"main.py") pushd "${game%/*}" - git pull -q + git pull -q | dialog --progressbox "Checking for updates, please wait..." -1 -1 python3 ${game} ;; *) @@ -464,6 +498,7 @@ declare -A command=( [R]="Redownload. Removes old versions of packages from cache before installing." [r]="Remove game. Remove a game and its menu entry." [t]="Total games. Show how many games are currently available." + [u]="Update games. Run available game update scripts." ) # Convert the keys of the associative array to a format usable by getopts @@ -484,6 +519,7 @@ while getopts "${args}" i ; do --infobox "There are currently ${#gameList[@]} games available." -1 -1 exit 0 ;; + u) game_update ;; esac done