protonup icon indicating copy to clipboard operation
protonup copied to clipboard

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

Open IceDBorn opened this issue 2 years ago • 4 comments

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 avatar May 26 '22 21:05 IceDBorn

#12

IceDBorn avatar May 26 '22 21:05 IceDBorn

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

alcaitiff avatar Jan 18 '23 11:01 alcaitiff

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;

alcaitiff avatar Mar 27 '23 12:03 alcaitiff

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

AUNaseef avatar Oct 19 '23 01:10 AUNaseef