#!/bin/bash

SCRIPT_VER="1.2"

APP="Plex WebTools"
APP_CATEGORY="Streaming"
APP_SCOPE="system"
APP_ENABLED="yes"
#><#APP_CHECK_VER_CMD="___f="/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/WebTools.bundle/VERSION" ; if [ -e "${___f}" ] ; then cat "${___f}" ; else echo "" ; fi"
DEPENDS="Plex"
SUPPORTED_ON="CentOS7,CentOS8,CentOSStream8,Debian9,Debian10,Ubuntu16.04,Ubuntu18.04,Ubuntu20.04"
MEMORY_K_MIN="4000000"
LIBRARY="functions4.sh"

if [ "${SUPPORT-}" = '' ]; then
    SUPPORT="https://installers.rapidseedbox.com/scripts/whmcs_client_installers/support"
fi

LOGFILE="/var/log/whmcs_client_installers/${0}.log"
[ ! -d "/var/log/whmcs_client_installers" ] && mkdir -p "/var/log/whmcs_client_installers"

wget -4 -nc -q --no-check-certificate --timeout=20 --tries=5 ${SUPPORT}/${LIBRARY} >> "${LOGFILE}" 2>&1
if [ ! -f "./${LIBRARY}" ] ; then
    echo "55"
    echo "Error downloading \"${SUPPORT}/${LIBRARY}\"" >> "${LOGFILE}"
    exit 55
fi

# shellcheck source=support/functions4.sh
. "./${LIBRARY}"
SCRIPTENTRY

APP_HOME="/var/lib/plexmediaserver"
PLUGINS_DIRECTORY="${APP_HOME}/Library/Application Support/Plex Media Server/Plug-ins"
APP_DIRECTORY="${PLUGINS_DIRECTORY}/WebTools.bundle"

while : ; do

    main_rc=1

    CHECK_APP ; _rc=$?
    if [ ${_rc} -ne 0 ] ; then
        main_rc=${_rc}
        break
    fi

    if [ ! -d "${PLUGINS_DIRECTORY}" ] ; then
        ERROR "'${PLUGINS_DIRECTORY}': directory does not exist."
        ERROR "Is 'Plex Media Server' installed?"
        ERROR "Can not continus. Exiting..."
        break
    fi

    ${PKG_UPDATE} || break
    ${PKG_INSTALL} "unzip" || break

    WGET "${SUPPORT}/plexmediaserver/WebTools.bundle.zip" || break
    UNZIP "${TMP_DIR}/WebTools.bundle.zip" "${TMP_DIR}/" || break
    WGET "${SUPPORT}/plexmediaserver/WebTools.bundle-DefaultPrefs.json" || break

    MV "${TMP_DIR}/WebTools.bundle" "${PLUGINS_DIRECTORY}/" || break
    CP_FILE "${TMP_DIR}/WebTools.bundle-DefaultPrefs.json" \
            "${APP_DIRECTORY}/Contents/DefaultPrefs.json" || break
    CHOWN_DIR plex:plex "${APP_HOME}" || break

    SVC_STATUS "plexmediaserver" \
        && SVC_RESTART "plexmediaserver"



    main_rc=0
    break

done


# Cleanup if error
if [ ${main_rc} -ne 0 -a ${main_rc} -ne 111 -a ${main_rc} -ne 117 ] ; then
    RM_DIRS "${APP_DIRECTORY}"
    SVC_STATUS "plexmediaserver" \
        && SVC_RESTART "plexmediaserver"
fi

SCRIPTEXIT
