AUNaseef / protonup

Install and Update Proton-GE
GNU General Public License v3.0
577 stars 24 forks source link

[SCRIPT] Remove all Proton GE versions installed, except the latest one #33

Open IceDBorn opened 2 years ago

IceDBorn commented 2 years ago

I'm not aware of a native way of removing all versions of proton GE, except the latest one and as a result I made a bash script that solves this issue.

#!/bin/bash

# Download the latest proton ge version
yes | protonup

# List all proton ge versions (protonup -l), find the latest version (grep -v), remove it from the list and remove any part not associated with the version tag (grep -o)
binaries=$(protonup -l | grep -v "$(protonup --releases | tail -n 1)" | grep -o '^\S*')

if [ -z "$binaries" ]
then
    echo "No proton GE versions to remove..."
else
        while IFS= read -r line ; do
          # Remove "Proton-" from older versions of proton ge, because the uninstaller fails to match the folders
          line="${line//Proton-/}"
          # Remove all proton ge versions, except the latest one
          yes | protonup -r "$line" && printf "\n"
        done <<< "$binaries"
fi
IceDBorn commented 2 years ago

12

alcaitiff commented 1 year ago

Note that the list is now reversed (shows newest first). So in this script you will need to change "tail" for "head".

alcaitiff commented 1 year ago

I don't know why, but "protonup -l" keeps changing order from time to time.

So I changed my removal script to:

INSTALLED_PROTON=$(protonup -l | sort);
if [ $(echo ${INSTALLED_PROTON} | wc -l) != "1" ]; then
     OLD_VERSION=$(echo ${INSTALLED_PROTON} |head -n 1 |cut -d " " -f1)
     echo "Removing ${OLD_VERSION}"
     protonup -r "${OLD_VERSION}" 
fi;
AUNaseef commented 1 year ago

it's not necessary to delete it through protonup, just deleting the folder will do. would be nice to integrate this into protonup tho.