Git Product home page Git Product logo

proton-ge-custom-updater's People

Contributors

antler5 avatar p-mng avatar soredake avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

proton-ge-custom-updater's Issues

return: [n]: a numeric argument is needed

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.

Installation address problem

Had to change an installation address in the script from

$Home/.steam/root/compatibilitytools.d
to
/home/nightcrack/.steam/root/compatibilitytools.d
to 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

Version selector

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

Improvements over ProtonUpdater?

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?

Feedback: About "Possible Improvements" listed

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"

compatibilitytools.d path used by script is not picked up by Steam

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.

Script should check for all installations of Steam before extracting and removing Proton archives

--> 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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.