From 4e1d866e0b4a34aea909dfea6807d5530c5031bc Mon Sep 17 00:00:00 2001 From: moraroy <88516395+moraroy@users.noreply.github.com> Date: Wed, 26 Apr 2023 17:15:25 -0700 Subject: [PATCH] Add files via upload --- NonSteamLaunchers.sh | 194 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 NonSteamLaunchers.sh diff --git a/NonSteamLaunchers.sh b/NonSteamLaunchers.sh new file mode 100644 index 0000000..0793129 --- /dev/null +++ b/NonSteamLaunchers.sh @@ -0,0 +1,194 @@ +#!/bin/bash +set -x + +# Create NonSteamGameInstallation subfolder in Downloads folder +mkdir -p ~/Downloads/NonSteamGameInstallation + +# Check if all necessary files and folders are in place +if [ -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ] && [ -f "$msi_file" ] && [ -f "$exe_file" ] && [ -f "$ubi_file" ] && [ -f "$origin_file" ] && [ -f "$battle_file" ]; then + echo "All files and folders are in place. No updates needed." + exit 0 +fi + +# Set the path to the Proton directory +proton_dir=$(find ~/.steam/root/compatibilitytools.d -maxdepth 1 -type d -name "GE-Proton*" | sort -V | tail -n1) + +# Set the URLs to download GE-Proton from +ge_proton_url1=https://github.com/GloriousEggroll/proton-ge-custom/releases/latest/download/GE-Proton.tar.gz +ge_proton_url2=https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-55/GE-Proton7-55.tar.gz + +# Check if GE-Proton is installed +if [ -z "$proton_dir" ]; then + # Download GE-Proton using the first URL + wget $ge_proton_url1 -O ~/Downloads/NonSteamGameInstallation/GE-Proton.tar.gz + + # Check if the download succeeded + if [ $? -ne 0 ]; then + # Download GE-Proton using the second URL + wget $ge_proton_url2 -O ~/Downloads/NonSteamGameInstallation/GE-Proton.tar.gz + fi + + # Check if either download succeeded + if [ $? -eq 0 ]; then + # Install GE-Proton + tar -xvf ~/Downloads/NonSteamGameInstallation/GE-Proton.tar.gz -C ~/.steam/root/compatibilitytools.d/ + proton_dir=$(find ~/.steam/root/compatibilitytools.d -maxdepth 1 -type d -name "GE-Proton*" | sort -V | tail -n1) + else + # Handle download failure + echo "Failed to download GE-Proton" + fi +else + +# Check if installed version is the latest version +installed_version=$(basename $proton_dir | sed 's/GE-Proton-//') + latest_version=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep tag_name | cut -d '"' -f 4) + if [ "$installed_version" != "$latest_version" ]; then + # Download GE-Proton using the first URL + wget $ge_proton_url1 -O ~/Downloads/NonSteamGameInstallation/GE-Proton.tar.gz + + # Check if the download succeeded + if [ $? -ne 0 ]; then + # Download GE-Proton using the second URL + wget $ge_proton_url2 -O ~/Downloads/NonSteamGameInstallation/GE-Proton.tar.gz + fi + + # Check if either download succeeded + if [ $? -eq 0 ]; then + # Install GE-Proton + tar -xvf ~/Downloads/NonSteamGameInstallation/GE-Proton.tar.gz -C ~/.steam/root/compatibilitytools.d/ + proton_dir=$(find ~/.steam/root/compatibilitytools.d -maxdepth 1 -type d -name "GE-Proton*" | sort -V | tail -n1) + else + # Handle download failure + echo "Failed to download GE-Proton" + fi + fi +fi + +# Set the appid for the non-Steam game +appid=NonSteamLaunchers + +# Set the URL to download the MSI file from +msi_url=https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi + +# Set the path to save the MSI file to +msi_file=~/Downloads/NonSteamGameInstallation/EpicGamesLauncherInstaller.msi + +# Set the URL to download the second file from +exe_url=https://webinstallers.gog-statics.com/download/GOG_Galaxy_2.0.exe + +# Set the path to save the second file to +exe_file=~/Downloads/NonSteamGameInstallation/GOG_Galaxy_2.0.exe + +# Set the URL to download the third file from +ubi_url=https://ubi.li/4vxt9 + +# Set the path to save the third file to +ubi_file=~/Downloads/NonSteamGameInstallation/UplayInstaller.exe + +# Set the URL to download the fourth file from +origin_url=https://taskinoz.com/downloads/OriginSetup-10.5.119.52718.exe + +# Set the path to save the fourth file to +origin_file=~/Downloads/NonSteamGameInstallation/OriginSetup-10.5.119.52718.exe + +# Set the URL to download the fifth file from +battle_url=https://www.battle.net/download/getInstallerForGame?os=win + +# Set the path to save the fifth file to +battle_file=~/Downloads/NonSteamGameInstallation/BattleNetInstaller.exe + + +# Download all files sequentially (if URLs and paths are set) +if [ ! -f "$msi_file" ]; then + wget $msi_url -O $msi_file +fi +if [ ! -f "$exe_file" ]; then + wget $exe_url -O $exe_file +fi +if [ ! -f "$ubi_file" ]; then + wget $ubi_url -O $ubi_file +fi +if [ ! -f "$origin_file" ]; then + wget $origin_url -O $origin_file +fi + +if [ ! -f "$battle_file" ]; then + wget $battle_url -O $battle_file +fi + +# Create app id folder in compatdata folder if it doesn't exist +if [ ! -d "$HOME/.local/share/Steam/steamapps/compatdata/$appid" ]; then + mkdir -p "$HOME/.local/share/Steam/steamapps/compatdata/$appid" +fi + +# Change working directory to Proton's +cd $proton_dir + +# Set the STEAM_COMPAT_CLIENT_INSTALL_PATH environment variable +export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam" + +# Set the STEAM_COMPAT_DATA_PATH environment variable for the first file +export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/$appid + +# Run the MSI file using Proton with the /passive option +"$proton_dir/proton" run MsiExec.exe /i "$msi_file" /qn + +# Wait for the first file to finish running before running the second file +wait + +# Run the second file using Proton with the /passive option +"$proton_dir/proton" run "$ubi_file" /S + +# Wait for the second file to finish running before running the third file +wait + +# Run the third file using Proton with the /passive option +"$proton_dir/proton" run "$origin_file" /SILENT + +# Edit local.xml +sed -i 's|| \n \n \n \n|' "$HOME/.local/share/Steam/steamapps/compatdata/$appid/pfx/drive_c/ProgramData/Origin/local.xml" + +# Terminate any processes with the name Origin.exe +pkill Origin.exe + +# Wait for the third file to finish running before running the fourth file +wait + +# Run the fourth file using Proton without the /passive option +"$proton_dir/proton" run "$exe_file" & + +# Wait for 5 seconds to give the GalaxySetup.tmp process time to start +sleep 90 + +# Cancel & Exit the GOG Galaxy Setup Wizard +pkill GalaxySetup.tmp + +# Navigate to %LocalAppData%\Temp +cd "/home/deck/Desktop/compatdata/NonSteamLaunchers/pfx/drive_c/users/steamuser/Temp" + +# Find the GalaxyInstaller_XXXXX folder and copy it to C:\Downloads +galaxy_installer_folder=$(find . -maxdepth 1 -type d -name "GalaxyInstaller_*" | head -n1) +cp -r "$galaxy_installer_folder" ~/Downloads/NonSteamGameInstallation/ + +# Navigate to the C:\Downloads\GalaxyInstaller_XXXXX folder +cd ~/Downloads/NonSteamGameInstallation/"$(basename $galaxy_installer_folder)" + +# Run GalaxySetup.exe with the /VERYSILENT and /NORESTART options +"$proton_dir/proton" run GalaxySetup.exe /VERYSILENT /NORESTART + +# Wait for the fourth file to finish running before running the fifth file +wait + +# Run the fifth file using Proton with the /passive option +"$proton_dir/proton" run "$battle_file" Battle.net-Setup.exe --lang=enUS --installpath="C:\Program Files (x86)\Battle.net" & + +sleep 90 + +pkill Battle.net.exe + +# Delete NonSteamGameInstallation subfolder in Downloads folder +rm -rf ~/Downloads/NonSteamGameInstallation + +echo "Script is fininshed" +exit +