p-mng / proton-ge-custom-updater Goto Github PK
View Code? Open in Web Editor NEWSimple updater for custom Proton distributions.
License: GNU General Public License v3.0
Simple updater for custom Proton distributions.
License: GNU General Public License v3.0
--> Regular Steam installation found. Installing...
--> Downloading Proton-6.16-GE-1.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 631 100 631 0 0 1968 0 --:--:-- --:--:-- --:--:-- 1965
100 411M 100 411M 0 0 10.0M 0 0:00:40 0:00:40 --:--:-- 10.7M
--> Verfiying file integrity...
Proton-6.16-GE-1.tar.gz: ЦЕЛ
--> Extracting Proton-6.16-GE-1.tar.gz...
--> Removing the compressed archive...
--> Done. Please check the command line for errors and restart Steam for the changes to take effect.
--> Flatpak Steam installation found. Installing...
--> Downloading Proton-6.16-GE-1.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 631 100 631 0 0 4194 0 --:--:-- --:--:-- --:--:-- 4206
100 411M 100 411M 0 0 9.8M 0 0:00:41 0:00:41 --:--:-- 10.2M
--> Verfiying file integrity...
Proton-6.16-GE-1.tar.gz: ЦЕЛ
--> Extracting Proton-6.16-GE-1.tar.gz...
--> Removing the compressed archive...
--> Done. Please check the command line for errors and restart Steam for the changes to take effect.
not really sure how to simply send some changes/extra code, so here goes:
added a version selector to proton-ge-custom-updater.sh.
mostly just wrapped your code into a loop through selected urls, from the selector function.
this version requires bash (or maybe similary feature rich shells) because i did not want to figure out, how to do it without bash-isms ... :D
hope you may find some of this useful ;)
#!/bin/bash
# Installation routine
install() {
<UNCHANGED />
}
selections(){
num=0
echo
for u in $RELEASE_URLS
do if [ "$num" = "$press" ]
then if [ "x$(egrep "^$u\$" .selections)" = "x" ]
then #add selection
echo "$u" >> .selections
else #remove selection
egrep -v "^$u\$" .selections > .sel
mv .sel .selections
fi
fi
if [ "x$(egrep "^$u\$" .selections)" != "x" ]
then echo "(x)[$num] $(echo "$u" | sed "s|.*/||")"
else echo "( )[$num] $(echo "$u" | sed "s|.*/||")"
fi
num=$(($num+1))
done
echo "(De)Select by entering a number (enter nothing to start):"
}
#GET tar.gz urls for all releases
RELEASE_URLS=$(curl -s "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases" | awk -F '"' '/browser_download_url": ".*tar.gz/{print $4}')
press=blaeh
echo -n > .selections
while [ "x$press" != "x" ]
do read -p "--> Proton GE Installer by p-mng, Version Selection - $(selections)" press
done
for url in $(cat .selections)
do filename="$(echo "$url" | sed "s|.*/||")"
echo "--> [$filename]"
# Check if steam is installed regularly, either in one of the two locations
if [ -d "$HOME/.local/share/Steam" ] || [ -d "$HOME/.steam" ]
then echo "--> Regular Steam installation found. Installing..."
install "$HOME/.local/share/Steam" || install "$HOME/.steam"
else echo "--> Steam does not seem to be installed as a regular package. No changes were made."
fi
# Check if steam is installed as Flatpak
if [ -d "$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam" ] || [ -d "$HOME/.var/app/com.valvesoftware.Steam/.steam" ]
then echo "--> Flatpak Steam installation found. Installing..."
install "$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam" || install "$HOME/.var/app/com.valvesoftware.Steam/.steam"
else echo "--> Steam does not seem to be installed as Flatpak. No changes were made."
fi
done
An error is shown but the archive is downloaded and extracted in the right folder in any case:
$ ./proton-ge-custom-updater
╔══════════════════════════════════════════════════════════════════════╗
║ This program will download and install the latest Proton-GE-Custom ║
║ Refer to github.com/GloriousEggroll/proton-ge-custom for more info ║
╚══════════════════════════════════════════════════════════════════════╝
--> Regular Steam installation found. Installing...
Error /home/leinardi/.local/share/Steam
./proton-ge-custom-updater: riga 17: return: [n]: è necessario un argomento numerico
--> Downloading Proton-5.11-GE-2-MF.tar.gz...
--> Extracting Proton-5.11-GE-2-MF.tar.gz...
--> Removing the compressed archive...
--> Done. Please check the command line for errors and restart Steam for the changes to take effect.
--> Steam does not seem to be installed as Flatpak. No changes were made.
My system is in Italian and the error translate to ./proton-ge-custom-updater:return: [n]: a numeric argument is needed
.
This is the error if I rerun the script and there are no updates available:
$ ./proton-ge-custom-updater
╔══════════════════════════════════════════════════════════════════════╗
║ This program will download and install the latest Proton-GE-Custom ║
║ Refer to github.com/GloriousEggroll/proton-ge-custom for more info ║
╚══════════════════════════════════════════════════════════════════════╝
--> Regular Steam installation found. Installing...
Error /home/leinardi/.local/share/Steam
./proton-ge-custom-updater: riga 17: return: [n]: è necessario un argomento numerico
--> Current version is already installed.
--> Steam does not seem to be installed as Flatpak. No changes were made.
Let me know if I can provide more info and thanks for the script.
Had to change an installation address in the script from
$Home/.steam/root/compatibilitytools.dto
/home/nightcrack/.steam/root/compatibilitytools.dto make installation work. Otherwise I've received
mkdir: cannot create directory ‘/.steam/root/compatibilitytools.d’: No such file or directory
[Info] Created /.steam/root/compatibilitytools.d
tar: /.steam/root/compatibilitytools.d: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Once ValveSoftware/steam-for-linux#6986 is resolved
Until now, I’ve been using https://github.com/flubberding/ProtonUpdater (I also made an AUR package for it for convenience: https://aur.archlinux.org/packages/cproton-git).
From what I can see, there are currently not many differences between that script and yours, so I was wondering if you had anything special planned for the future (e.g., more extensive version management) that would make me want to use your version over ProtonUpdater?
From what I saw in a recent issue, the ProtonUpdater maintainer also wants to pick up development again soon and implement new features; maybe you could even collaborate together?
The script is not compatible with fish shell as default.
Exchange #!/bin/sh
with #!/bin/bash
This must be specific to my distro (Ubuntu 20.04) or perhaps legacy folder structure, I'm not sure exactly. But by default the script places the files under $HOME/.steam/steam/compatibilitytools.d
, which for me was not picked up by Steam. Instead, I had to use $HOME/.steam/compatibilitytools.d
, which worked as expected.
Note that when testing this, I did not have conflicting compatibilitytools.d
folders, so this isn't a case of Steam finding what I had already instead of what was produced by the script.
Here is the commit that fixed this script for me: JeremyKennedy@d35339f
Note that my Steam executable is under $HOME/.steam/steam.sh
. I'm not sure what it is on your system, but maybe the compatibilitytools.d
is supposed to be next to steam.sh
? In which case you could look for that file.
Great script by the way! I was just thinking of writing something similar, I'm glad I came across your post.
While I definitely support AUR packages and updating Steam configs,
it would be very useful to have atleast a backup/archive of the previous version moved to a separate folder just incase we need to rollback one version somehow? 🤔
" Possible improvements:
Create AUR package for easier updates
Automatically update steam configurations and remove old versions"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.