From ba01d6f523d37a4fcda0286fb4faabc01bbe590b Mon Sep 17 00:00:00 2001 From: "Josh.5" Date: Wed, 31 Aug 2022 22:01:09 +1200 Subject: [PATCH] Fix Heroic Launcher install script --- overlay/opt/scripts/install_heroic.sh | 65 ++++++++++++++++++--------- 1 file changed, 45 insertions(+), 20 deletions(-) diff --git a/overlay/opt/scripts/install_heroic.sh b/overlay/opt/scripts/install_heroic.sh index 6ca690a..eceb85c 100644 --- a/overlay/opt/scripts/install_heroic.sh +++ b/overlay/opt/scripts/install_heroic.sh @@ -5,8 +5,8 @@ # File Created: Thursday, 1st January 1970 12:00:00 pm # Author: Console and webGui login account (jsunnex@gmail.com) # ----- -# Last Modified: Monday, 17th January 2022 11:44:46 pm -# Modified By: Console and webGui login account (jsunnex@gmail.com) +# Last Modified: Wednesday, 31st August 2022 10:01:31 pm +# Modified By: Josh.5 (jsunnex@gmail.com) ### pkg=heroic @@ -19,34 +19,59 @@ github_get_all_release() { | grep '"tag_name":' \ | sed -E 's/.*"([^"]+)".*/\1/'; } +github_get_release_download_url() { + REPO="${1}"; + TAG="${2}"; + TYPE="${3}"; + IGNORE="${4}"; + curl --silent "https://api.github.com/repos/${REPO}/releases/tags/${TAG}" \ + | grep '"browser_download_url":' \ + | sed -E 's/.*"([^"]+)".*/\1/' \ + | grep -P "${TYPE}" \ + | grep -P "${TYPE}" \ + | head -n1; +} install() { - if ! dpkg --get-selections | grep -q "^$pkg[[:space:]]*install$" >/dev/null; then - echo 'deb https://sourceforge.net/projects/madlinux/files/repo core main'|sudo tee /etc/apt/sources.list.d/madlinux.list - wget -qO- Https://sourceforge.net/projects/madlinux/files/repo/madlinux.key|gpg --dearmor|sudo tee /etc/apt/trusted.gpg.d/madlinux.gpg>/dev/null - apt-get update - apt-get install -y heroic + # Download Heroic deb package if it does not yet exist + __latest_heroic_release=$(github_get_all_release "Heroic-Games-Launcher/HeroicGamesLauncher" | head -n1) + if [[ ! -f "/home/${USER}/Downloads/heroic-${__latest_heroic_release}.deb" ]]; then + __heroic_download_link=$(github_get_release_download_url "Heroic-Games-Launcher/HeroicGamesLauncher" "${__latest_heroic_release}" ".deb") + wget -O /tmp/heroic.deb "${__heroic_download_link}" + [[ $? -gt 0 ]] && echo "Error downloading pacakge. Exit!" && return 1 + mv /tmp/heroic.deb "/home/${USER}/Downloads/heroic-${__latest_heroic_release}.deb" fi - if ! dpkg --get-selections | grep -q "^zenity[[:space:]]*install$" >/dev/null; then - # Pre-install deps - apt-get update - apt-get install -y zenity - fi + # Install/Update the latest version of Heroic + [[ "${APT_UPDATED:-false}" == 'false' ]] && apt-get update && APT_UPDATED=true + apt-get install -y "/home/${USER}/Downloads/heroic-${__latest_heroic_release}.deb" - if [[ ! -d "/home/${USER}/HeroicBashLauncher" ]]; then + # Install/Update deps for HeroicBashLauncher + [[ "${APT_UPDATED:-false}" == 'false' ]] && apt-get update && APT_UPDATED=true + apt-get install -y zenity + + # Install/Update the latest version HeroicBashLauncher + __latest_hbl_release=$(github_get_all_release "redromnon/HeroicBashLauncher" | head -n1) + if [[ ! -e "/home/${USER}/HeroicBashLauncher/.${__latest_hbl_release}" ]]; then # Download HeroicBashLauncher - latest_release=$(github_get_all_release redromnon/HeroicBashLauncher | head -n1) - download_url="https://github.com/redromnon/HeroicBashLauncher/releases/download/${latest_release}/HeroicBashLauncher_${latest_release}.zip" - wget -O "/tmp/HeroicBashLauncher-${latest_release}.zip" "${download_url}" + if [[ ! -f "/home/${USER}/Downloads/HeroicBashLauncher-${__latest_hbl_release}.zip" ]]; then + __hbl_download_link=$(github_get_release_download_url "redromnon/HeroicBashLauncher" "${__latest_hbl_release}" "\d\.zip") + wget -O /tmp/hbl.zip "${__hbl_download_link}" + [[ $? -gt 0 ]] && echo "Error downloading pacakge. Exit!" && return 1 + mv /tmp/hbl.zip "/home/${USER}/Downloads/HeroicBashLauncher-${__latest_hbl_release}.zip" + fi # Extract HeroicBashLauncher - su ${USER} -c "cd /home/${USER} && unzip -o /tmp/HeroicBashLauncher-${latest_release}.zip" + mkdir -p "/home/${USER}/HeroicBashLauncher" + rm -rf "/tmp/hbl" + su ${USER} -c "mkdir -p /tmp/hbl && cd /tmp/hbl && unzip -o /home/${USER}/Downloads/HeroicBashLauncher-${__latest_hbl_release}.zip" + su ${USER} -c "cp -rfv /tmp/hbl/HeroicBashLauncher*/HeroicBashLauncher/* /home/${USER}/HeroicBashLauncher/" + chmod +x "/home/${USER}/HeroicBashLauncher/HeroicBashLauncher" - # Setup as user - chmod +x /home/${USER}/HeroicBashLauncher/setup.sh - sed -i 's|^#!.*\/bash$|#!/usr/bin/env bash|' /home/${USER}/HeroicBashLauncher/setup.sh + # Setup script in user PATH + su ${USER} -c "mkdir -p /home/default/.local/bin" + su ${USER} -c "ln -sf /home/${USER}/HeroicBashLauncher/HeroicBashLauncher /home/${USER}/.local/bin/HeroicBashLauncher" fi # Remove installer shortcut