62
I made a better Proton GE installer and updater
(forgejo.zeromedia.vip)
Discussions and news about gaming on the GNU/Linux family of operating systems (including the Steam Deck). Potentially a $HOME away from home for disgruntled /r/linux_gaming denizens of the redditarian demesne.
This page can be subscribed to via RSS.
Original /r/linux_gaming pengwing by uoou.
No memes/shitposts/low-effort posts, please.
Help:
Launchers/Game Library Managers:
General:
Discord:
IRC:
Matrix:
Telegram:
I also wrote my own Python based installer, updater, manager of Proton GE (but do not post it here, as this is about your project and not mine). Years back when I posted it, people pointed out such a cli tool already existed: protonup. And for those who want a GUI, protonup-qt exists too.
This is extremely dangerous command! If anything goes wrong for whatever reason and the variable $tempdir is empty at the time of this command, then it would delete everything. At the very least you should do a check if variable is not empty and resolves to an existing directory. Better yet, make it multiple steps:
rm -r GE-Proton*and then cd .. back and delete empty directory withrmdir $tempdirThis is a more controlled way of deleting files. I admit that I am a bit paranoid with rm -r commands.
And this danger is not merely theoretical. Steam for Linux did it in 2015.
https://github.com/valvesoftware/steam-for-linux/issues/3671
It's not dangerous in this case, if $tmpdir was unset, all that would happen is
rm -r $tempdircomplaining about a missing operand. The only issue I can see this causing is that ifmktemp -dfailsrmwould print an unhelpful error message. Usingrm -rfinstead would hide it, so could could checking the variable and conditionally runningrm -r, as you suggested.Scripts and programs are edited all the time, either by its original author or for modifications when downloaded. Maybe the original author forgot something when editing and suddenly its no longer safe. Or $tempdir isn't a unique name, meaning at different places (be it copy paste) could manipulate the global variable. Human errors happen all the time. Better do check in place, instead hoping that this stays safe. Alternatively create a tempdir with a fixed part in name, like "${tempdir}_protonge".
Also, use
set -euo pipefail(look atman set) in every script that's more than four lines. It would instantly fail and exit upon finding an unbound variable.However, there are pitfalls using this quick fail mode:
set -euo pipefail(21 minutes video)