#!/bin/bash

SCRIPT_VER="1.6"

APP="FlexGet"
APP_CATEGORY="Torrent Clients and Utilities"
APP_SCOPE="user"
APP_ENABLED="yes"
SUPPORTED_ON="CentOS7,Debian10,Ubuntu18.04,Ubuntu20.04,Ubuntu22.04"
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

VALIDATE_USER

APP_DIRECTORY="${USERHOME}/.flexget"

while : ; do

    main_rc=1

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

    [ -d "${USERHOME}" ] || break

    PIP3_INSTALL --upgrade "pip" || break
    PIP3_INSTALL --upgrade "setuptools" || break
    RUN_LOG "pip3 install flexget --ignore-installed PyYAML" || break

    FLEXGET="$( which flexget 2>/dev/null )"
    if [ ! -z "${FLEXGET}" ] ; then
        # Configuration
        MKDIR "${APP_DIRECTORY}"
        if [ ! -f "${APP_DIRECTORY}/config.yml" ] ; then
            cat <<-EOF > "${APP_DIRECTORY}/config.yml" 2>> "${LOGFILE}"
		# Please consult: http://flexget.com/Configuration
		tasks:
		  test task:
		    rss: http://mysite.com/myfeed.rss
		    series:
		      - My Favorite Show
		      - Another Good Show:
		          quality: 720p
		EOF
        fi
        CHOWN_DIR "${USERNAME}":"${USERNAME}" "${APP_DIRECTORY}"
        #
        # Create cron task
        [ ! -d "/etc/cron.d" ] \
            && MKDIR "/etc/cron.d"
        cat <<-EOF > "/etc/cron.d/flexget-${USERNAME}" 2>> "${LOGFILE}"
		# /etc/cron.d/flexget: crontab entries for the flexget package

		SHELL=/bin/sh
		PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

		@hourly ${USERNAME} test -x "${FLEXGET}" && ${FLEXGET} --cron execute
		EOF

        # Create logrotate task
        [ ! -d "/etc/logrotate.d" ] \
            && MKDIR "/etc/logrotate.d"
        cat <<-EOF > "/etc/logrotate.d/flexget-${USERNAME}" 2>> "${LOGFILE}"
		${APP_DIRECTORY}/flexget.log {
		    daily
		    missingok
		    rotate 7
		    compress
		    notifempty
		    create mode 660 ${USERNAME} ${USERNAME}
		}   
		EOF
    fi


    main_rc=0
    break

done


SCRIPTEXIT
