Skip to content

Instantly share code, notes, and snippets.

@sophieforceno
Last active December 11, 2021 23:37
Show Gist options
  • Save sophieforceno/dbaae4db53703eb5ac69be8a13eb2ec4 to your computer and use it in GitHub Desktop.
Save sophieforceno/dbaae4db53703eb5ac69be8a13eb2ec4 to your computer and use it in GitHub Desktop.
Updates Plex media server running on Ubuntu
#! /bin/bash
# Downloads and install the latest version of Plex (for Ubuntu) for your arch
# if the version available is newer than what is installed
#
#
# by Sophie Forceno
#
arch=$(uname -m)
DL_PATH="/media/external/Software/Linux/$arch"
installed_ver=$(dpkg -s plexmediaserver | grep -Po '(?<=Version\: )(\S+)')
deburl=$(curl -s "https://plex.tv/downloads/details/1?build=linux-ubuntu-$arch&channel=16&distro=ubuntu" | grep -Po '(?<=url=\")(\S+)(?=\")')
filename=$(echo "$deburl" | awk -F'/' '{ print $7 }')
avail_ver=$(curl -s "https://plex.tv/downloads/details/1?build=linux-ubuntu-$arch&channel=16&distro=ubuntu" | grep -Po '(?<=(\" version=\"))(\S+)(?=(\"))')
if [[ "$installed_ver" = "$avail_ver" && -n "$installed_ver" && -n "$avail_ver" ]]; then
echo "Plexmediaserver is already up-to-date (version $installed_ver)"
exit 0
elif [[ "$installed_ver" != "$avail_ver" && -n "$installed_ver" && -n "$avail_ver" ]]; then
echo "There is an update for plexmediaserver!"
sudo rm -fv "$DL_PATH"/plex*
echo "Downloading plexmediaserver v$avail_ver"
sudo wget -q "$deburl" -P "$DL_PATH"
echo "Stopping plexmediaserver..."
sudo service plexmediaserver stop
echo "Installing plexmediaserver v$avail_ver"
sudo dpkg -i "$DL_PATH"/"$filename"
installed_ver=$(dpkg -s plexmediaserver | grep -Po '(?<=Version\: )(\S+)')
echo "Plex has been updated to v$installed_ver!"
exit 0
else
echo "Uh oh. Can't get latest version. Do you have an internet connection?"
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment