104 lines
3.2 KiB
Text
104 lines
3.2 KiB
Text
#!/usr/bin/with-contenv bash
|
||
|
||
# set no update message
|
||
[[ -e /tmp/no-version.nfo ]] && \
|
||
rm /tmp/no-version.nfo
|
||
NOVERSION_SET='/tmp/no-version.nfo'
|
||
cat > "${NOVERSION_SET}" <<-EOFVERSION
|
||
|
||
|
||
#######################################################
|
||
# Update routine will not run because you havent set #
|
||
# the VERSION variable, for more information checkout #
|
||
# https://github.com/linuxserver/docker-plex #
|
||
#######################################################
|
||
EOFVERSION
|
||
|
||
# test for no version set or opt out for autoupdates
|
||
if [ -z "$VERSION" -o "$VERSION" == "0" -o ! -z "$ADVANCED_DISABLEUPDATES" ]; then
|
||
echo "$(cat /tmp/no-version.nfo)"
|
||
exit 0
|
||
fi
|
||
|
||
# set header for no preferences/token message
|
||
[[ -e /tmp/no-token.nfo ]] && \
|
||
rm /tmp/no-token.nfo
|
||
NOTOKEN_SET='/tmp/no-token.nfo'
|
||
cat > "${NOTOKEN_SET}" <<-EOFTOKEN
|
||
|
||
|
||
#####################################################
|
||
# Login via the webui at http://<ip>:32400/web #
|
||
# and restart the docker, because there was no #
|
||
EOFTOKEN
|
||
|
||
# if preferences files doesn't exist, exit out
|
||
if [ ! -e "/config/Library/Application Support/Plex Media Server/Preferences.xml" ]; then
|
||
cat >> "${NOTOKEN_SET}" <<-EOFTOKEN
|
||
# preference file found, possibly first startup. #
|
||
#####################################################
|
||
|
||
|
||
EOFTOKEN
|
||
echo "$(cat /tmp/no-token.nfo)"
|
||
exit 0
|
||
fi
|
||
|
||
# attempt to read plex token
|
||
PLEX_TOKEN=$( sed -n 's/.*PlexOnlineToken="//p' \
|
||
"/config/Library/Application Support/Plex Media Server/Preferences.xml" \
|
||
| sed "s/\".*//")
|
||
|
||
# if plex token isn't found, exit out
|
||
if [ -z "$PLEX_TOKEN" ]; then
|
||
cat >> "${NOTOKEN_SET}" <<-EOFTOKEN
|
||
# plex token found in the preference file #
|
||
#####################################################
|
||
|
||
|
||
EOFTOKEN
|
||
echo "$(cat /tmp/no-token.nfo)"
|
||
exit 0
|
||
fi
|
||
|
||
# determine installed version of plex
|
||
INSTALLED=$(dpkg-query -W -f='${Version}' plexmediaserver)
|
||
|
||
|
||
# start update routine
|
||
|
||
[[ "$PLEXPASS" ]] && \
|
||
echo "PLEXPASS is deprecated, please use VERSION"
|
||
|
||
if [[ -z $VERSION && "$PLEXPASS" == "1" || $VERSION = "plexpass" ]]; then echo "VERSION=plexpass is deprecated please use version latest"; fi
|
||
|
||
if [[ "$VERSION" = latest || "$VERSION" = plexpass ]]; then
|
||
VERSION=$(curl -s "${PLEX_URL}/latest/1?channel=8&build=linux-ubuntu-x86_64&distro=ubuntu&X-Plex-Token=$PLEX_TOKEN"| cut -d "/" -f 5 )
|
||
echo "Target version: $VERSION set to: latest\plexpass"
|
||
elif [[ "$VERSION" = public ]]; then
|
||
VERSION=$(curl -s "${PLEX_URL}/latest/1?channel=8&build=linux-ubuntu-x86_64&distro=ubuntu&X-Plex-Token="| cut -d "/" -f 5 )
|
||
echo "Target version: $VERSION set to: public"
|
||
else
|
||
echo "Target version: $VERSION set to: manual"
|
||
fi
|
||
|
||
last=130
|
||
if [[ "$VERSION" != "$INSTALLED" ]]; then
|
||
echo "Upgrading from version: $INSTALLED to version: $VERSION"
|
||
while [[ $last -ne "0" ]]; do
|
||
rm -f /tmp/plexmediaserver_*.deb
|
||
curl -o /tmp/plexmediaserver_"${VERSION}"_amd64.deb -L \
|
||
"${PLEX_URL}/plex-media-server/$VERSION/plexmediaserver_${VERSION}_amd64.deb"
|
||
last=$?
|
||
done
|
||
[[ ! -e /tmp/plexmediaserver_"${VERSION}"_amd64.deb ]] && \
|
||
exit 0
|
||
apt-get remove --purge -y \
|
||
plexmediaserver
|
||
dpkg -i /tmp/plexmediaserver_"${VERSION}"_amd64.deb
|
||
|
||
else
|
||
echo "No need to update!"
|
||
fi
|
||
|
||
cp -v /defaults/plexmediaserver /etc/default/plexmediaserver
|