moraroy / NonSteamLaunchers-On-Steam-Deck

Installs the latest GE-Proton and Installs Non Steam Launchers under 1 Proton prefix folder and adds them to your steam library. Installs... Battle.net, Epic Games, Ubisoft, GOG, EA App, Amazon Games, itch.io , Legacy Games, The Humble Games Collection, IndieGala, Rockstar Games Launcher,PS Plus, Glyph, VKPlay & HoYoPlay. SD Card Support and Games.
https://github.com/sponsors/moraroy
MIT License
2.71k stars 50 forks source link

Does not fail early if Proton install fails #1

Closed jackson15j closed 1 year ago

jackson15j commented 1 year ago

Trying this out on my base Steam Deck. Just updated today, before trying out your script to install Battle.Net (with a unique APP ID). Few failures on missing system folders when installing Proton-GE.

Output:

(1)(deck@steamdeck NonSteamLaunchers-On-Steam-Deck)$ ./NonSteamLaunchers.sh 
+ set -u
++ zenity --list '--text=Which installers do you want to download and install?' --checklist '--column=:)' '--column=The default is one App ID Installation' FALSE 'Seperate App IDs' TRUE 'Epic Games Launcher' TRUE 'GOG Galaxy' TRUE Uplay TRUE Origin TRUE Battle.net FALSE 'Amazon Games - broken' FALSE 'EA App - broken' FALSE 'itch.io - broken' --width=400 --height=362
+ options='Seperate App IDs|Battle.net'
+ [[ Seperate App IDs|Battle.net == *\O\r\i\g\i\n* ]]
+ [[ Seperate App IDs|Battle.net == *\S\e\p\e\r\a\t\e\ \A\p\p\ \I\D\s* ]]
+ use_separate_appids=true
+ echo 0
+ zenity --progress '--title=Update Status' '--text=Starting update...' --width=450 --height=350 --percentage=0
+ echo '# Detecting and Installing GE-Proton'
+ mkdir -p /home/deck/Downloads/NonSteamLaunchersInstallation
++ find /home/deck/.steam/root/compatibilitytools.d -maxdepth 1 -type d -name 'GE-Proton*'
++ tail -n1
++ sort -V
find: ‘/home/deck/.steam/root/compatibilitytools.d’: No such file or directory
+ proton_dir=
+ 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
+ '[' -z '' ']'
+ echo 'Downloading GE-Proton using the first URL'
+ wget https://github.com/GloriousEggroll/proton-ge-custom/releases/latest/download/GE-Proton.tar.gz -O /home/deck/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
--2023-04-29 22:09:45--  https://github.com/GloriousEggroll/proton-ge-custom/releases/latest/download/GE-Proton.tar.gz
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-55/GE-Proton.tar.gz [following]
--2023-04-29 22:09:46--  https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-55/GE-Proton.tar.gz
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 404 Not Found
2023-04-29 22:09:46 ERROR 404: Not Found.

+ '[' 8 -ne 0 ']'
+ echo 'Downloading GE-Proton using the second URL'
+ wget https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-55/GE-Proton7-55.tar.gz -O /home/deck/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz
--2023-04-29 22:09:46--  https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-55/GE-Proton7-55.tar.gz
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/161428437/4212200a-8e7b-49d5-af80-48996a61eaed?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230429%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230429T210946Z&X-Amz-Expires=300&X-Amz-Signature=0f002a47b80d379a700bffa016c766c218342f8f6e9fa58330ca57800fb6ee5a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=161428437&response-content-disposition=attachment%3B%20filename%3DGE-Proton7-55.tar.gz&response-content-type=application%2Foctet-stream [following]
--2023-04-29 22:09:46--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/161428437/4212200a-8e7b-49d5-af80-48996a61eaed?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230429%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230429T210946Z&X-Amz-Expires=300&X-Amz-Signature=0f002a47b80d379a700bffa016c766c218342f8f6e9fa58330ca57800fb6ee5a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=161428437&response-content-disposition=attachment%3B%20filename%3DGE-Proton7-55.tar.gz&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 414899774 (396M) [application/octet-stream]
Saving to: ‘/home/deck/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz’

/home/deck/Downloads/NonSteamLaunchers 100%[============================================================================>] 395.68M  6.22MB/s    in 60s     

2023-04-29 22:10:47 (6.60 MB/s) - ‘/home/deck/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz’ saved [414899774/414899774]

+ '[' 0 -eq 0 ']'
+ echo 'Installing GE-Proton'
+ tar -xvf /home/deck/Downloads/NonSteamLaunchersInstallation/GE-Proton.tar.gz -C /home/deck/.steam/root/compatibilitytools.d/
tar: /home/deck/.steam/root/compatibilitytools.d: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
++ find /home/deck/.steam/root/compatibilitytools.d -maxdepth 1 -type d -name 'GE-Proton*'
++ sort -V
++ tail -n1
find: ‘/home/deck/.steam/root/compatibilitytools.d’: No such file or directory
+ proton_dir=
+ echo 10
+ echo '# Setting files in their place'
+ appid=NonSteamLaunchers
+ msi_url=https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi
+ msi_file=/home/deck/Downloads/NonSteamLaunchersInstallation/EpicGamesLauncherInstaller.msi
+ exe_url=https://webinstallers.gog-statics.com/download/GOG_Galaxy_2.0.exe
+ exe_file=/home/deck/Downloads/NonSteamLaunchersInstallation/GOG_Galaxy_2.0.exe
+ ubi_url=https://ubi.li/4vxt9
+ ubi_file=/home/deck/Downloads/NonSteamLaunchersInstallation/UplayInstaller.exe
+ origin_url=https://taskinoz.com/downloads/OriginSetup-10.5.119.52718.exe
+ origin_file=/home/deck/Downloads/NonSteamLaunchersInstallation/OriginSetup-10.5.119.52718.exe
+ battle_url='https://www.battle.net/download/getInstallerForGame?os=win'
+ battle_file=/home/deck/Downloads/NonSteamLaunchersInstallation/BattleNetInstaller.exe
+ amazon_url=https://download.amazongames.com/AmazonGamesSetup.exe
+ amazon_file=/home/deck/Downloads/NonSteamLaunchersInstallation/AmazonGamesSetup.exe
+ eaapp_url=https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe
+ eaapp_file=/home/deck/Downloads/NonSteamLaunchersInstallation/EAappInstaller.exe
+ itchio_url='https://itch.io/app/download?platform=windows'
+ itchio_file=/home/deck/Downloads/NonSteamLaunchersInstallation/itch-setup.exe
+ echo 20
+ echo '# Creating folders'
+ '[' true = false ']'
+ cd
+ export 'STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.local/share/Steam'
+ STEAM_COMPAT_CLIENT_INSTALL_PATH='~/.local/share/Steam'
+ export STEAM_COMPAT_DATA_PATH=/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers
+ STEAM_COMPAT_DATA_PATH=/home/deck/.local/share/Steam/steamapps/compatdata/NonSteamLaunchers
+ wait
+ echo 30
+ echo '# Downloading/Installing Epic Games'
+ [[ Seperate App IDs|Battle.net == *\E\p\i\c\ \G\a\m\e\s\ \L\a\u\n\c\h\e\r* ]]
+ wait
+ echo 40
+ echo '# Downloading/Installing Gog Galaxy'
+ [[ Seperate App IDs|Battle.net == *\G\O\G\ \G\a\l\a\x\y* ]]
+ wait
+ echo 50
+ echo '# Downloading/Installing Uplay'
+ [[ Seperate App IDs|Battle.net == *\U\p\l\a\y* ]]
+ wait
+ echo 60
+ echo '# Downloading/Installing Origin'
+ [[ Seperate App IDs|Battle.net == *\O\r\i\g\i\n* ]]
+ wait
+ echo 70
+ echo '# Downloading/Installing Battle.net'
+ [[ Seperate App IDs|Battle.net == *\B\a\t\t\l\e\.\n\e\t* ]]
+ echo 'User selected Battle.net'
+ '[' true = true ']'
+ appid=Battle.netLauncher
+ '[' '!' -d /home/deck/.local/share/Steam/steamapps/compatdata/Battle.netLauncher ']'
+ cd
+ export 'STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.local/share/Steam'
+ STEAM_COMPAT_CLIENT_INSTALL_PATH='~/.local/share/Steam'
+ export STEAM_COMPAT_DATA_PATH=/home/deck/.local/share/Steam/steamapps/compatdata/Battle.netLauncher
+ STEAM_COMPAT_DATA_PATH=/home/deck/.local/share/Steam/steamapps/compatdata/Battle.netLauncher
+ '[' '!' -f /home/deck/Downloads/NonSteamLaunchersInstallation/BattleNetInstaller.exe ']'
+ echo 'Running BATTLE file using Proton with the /passive option'
+ sleep 90
+ /proton run /home/deck/Downloads/NonSteamLaunchersInstallation/BattleNetInstaller.exe Battle.net-Setup.exe --lang=enUS '--installpath=C:\Program Files (x86)\Battle.net'
./NonSteamLaunchers.sh: line 471: /proton: No such file or directory
+ pkill Battle.net.exe
+ wait
+ echo 80
+ echo '# Downloading/Installing Amazon Games'
+ [[ Seperate App IDs|Battle.net == *\A\m\a\z\o\n\ \G\a\m\e\s* ]]
+ wait
+ echo 90
+ echo '# Downloading/Installing EA App'
+ [[ Seperate App IDs|Battle.net == *\E\A\ \A\p\p* ]]
+ wait
+ echo 95
+ echo '# Downloading/Installing itch.io'
+ [[ Seperate App IDs|Battle.net == *\i\t\c\h\.\i\o* ]]
+ wait
+ rm -rf /home/deck/Downloads/NonSteamLaunchersInstallation
+ echo 100
+ echo '# Script is finished - you may close all windows'
+ '[' 0 = -1 ']'
+ exit
(deck@steamdeck NonSteamLaunchers-On-Steam-Deck)$ 

Steam folder

(deck@steamdeck NonSteamLaunchers-On-Steam-Deck)$ ls ../.steam/root/
appcache                       GameOverlayRenderer64.dll      resource                                      steam.sh
bin                            gpu-trace.log                  servers                                       steam_subscriber_agreement.txt
bin_steamdeps.py               graphics                       ssfn5178013680545014521                       steamui
bootstrap.tar.xz               installscriptevalutor_log.txt  standalone_installscript_progress_228980.vdf  tenfoot
clientui                       legacycompat                   steam                                         ThirdPartyLegalNotices.css
config                         linux32                        Steam                                         ThirdPartyLegalNotices.doc
controller_base                linux64                        steamapps                                     ThirdPartyLegalNotices.html
d3ddriverquery64.dxvk-cache    logs                           steamclient64.dll                             ubuntu12_32
depotcache                     music                          steamclient.dll                               ubuntu12_64
fossilize_engine_filters.json  package                        steamdeps.txt                                 update_hosts_cached.vdf
friends                        public                         steam_msg.sh                                  userdata
(deck@steamdeck NonSteamLaunchers-On-Steam-Deck)$ 
jackson15j commented 1 year ago

Fixed by manually creating the $HOME/.steam/root/compatibilitytools.d folder. Suggest creating the folder t the top of the script with: makedir -p <path> (-p can create nested folders + swallow errors if folder exists already).

Currently waiting for Battle.Net installer to complete now...

jackson15j commented 1 year ago

...Battle.Net failed during update stage. I'm assuming this is a separate Blizzard issue now.

moraroy commented 1 year ago

@jackson15j thanks brother for the heads up, will add these changes and fixes!

moraroy commented 1 year ago

@jackson15j pushing the change now brother1