#!/bin/bash

SCRIPT_VER="1.4"

APP="MATE Desktop"
APP_CATEGORY="Desktop Environments"
APP_SCOPE="system"
APP_ENABLED="yes"
SYS_PKG_NAME="mate-utils-common"
#><#APP_CHECK_VER_CMD="${PKG_VER} mate-utils-common"
STORED_PASSWORD_SERVICE="user"
SUPPORTED_ON="CentOS7,Debian9,Debian10,Ubuntu16.04,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

while : ; do

    main_rc=1

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

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


    case "${LSB_VENDOR}" in
      "CentOS")
          YUM_GROUPINSTALL "X Window System" || break
          YUM_GROUPINSTALL "MATE Desktop" || break
          ;;
      "Debian"|"Ubuntu")
          if [ "${LSB_VENDOR}" = "Debian" ] ; then
              APT_INSTALL "dconf-cli" || break
          fi
          case "${LSB_VER}" in
            "Ubuntu16.04")
                ADD_APT_REPO "ppa:ubuntu-mate-dev/xenial-mate" || break
                APT_UPDATE || break
                ;;
          esac
          APT_INSTALL \
             "mate-desktop-environment" "dconf-cli" \
           || break
          ;;
    esac

    # Fetch config files
    WGET "${SUPPORT}/mate/mate-config.tar.gz" \
        && TAR_ZXF "${TMP_DIR}/mate-config.tar.gz" "${USERHOME}/"
    if [ $? -eq 0 ] ; then
        # Process wallpaper
        case "${LSB_VENDOR}" in
          "CentOS")
              PKGS="ImageMagick"
              ;;
          "Debian"|"Ubuntu")
              PKGS="imagemagick"
              ;;
        esac
        if ${PKG_INSTALL} ${PKGS} ; then
            INFO "Let's make new wallpaper..."
            RUN_LOG "convert '${USERHOME}/Images/${LSB_VENDOR_L}.jpg' \
                       -resize 128x128\> '${TMP_DIR}/logo.jpg' 2>&1"
            RUN_LOG "composite -gravity southeast \
                       -geometry +0+40 \
                       '${TMP_DIR}/logo.jpg' \
                       '${USERHOME}/Images/rapidseedbox-wp-mate-template.jpg' \
                       '${USERHOME}/Images/rapidseedbox-wp-mate.jpg' 2>&1"
            # Version info
            RUN_LOG "convert '${USERHOME}/Images/rapidseedbox-wp-mate.jpg' \
                      -gravity southwest \
                      -pointsize 16 \
        	      -fill yellow -annotate +2+40 '${LSB_DESCRIPTION}' \
                    '${USERHOME}/Images/rapidseedbox-wp-mate.jpg' 2>&1"
        else
            CP_FILE "${USERHOME}/Images/rapidseedbox-wp-mate-template.jpg" \
                    "${USERHOME}/Images/rapidseedbox-wp-mate.jpg"
        fi
        CHOWN_DIR "${USERNAME}":"${USERNAME}" "${USERHOME}/Images"
        CHOWN_DIR "${USERNAME}":"${USERNAME}" "${USERHOME}/.config"

        MKDIR "/etc/dconf/profile"
        cat <<-EOF > "/etc/dconf/profile/user" 2>> "${LOGFILE}"
		user-db:user
		system-db:mate
		EOF
        MKDIR "/etc/dconf/db/mate.d"
        cat <<-EOF > "/etc/dconf/db/mate.d/theme" 2>> "${LOGFILE}"
		[org/mate/desktop/background]
		picture-filename="${USERHOME}/Images/rapidseedbox-wp-mate.jpg"
		picture-options='stretched'
		EOF
        RM_FILES "${USERHOME}/.config/dconf/user"
        RUN_LOG "dconf update"
    fi

    main_rc=0
    break

done


# Cleanup if error
if [ ${main_rc} -ne 0 -a ${main_rc} -ne 111 -a ${main_rc} -ne 117 ] ; then
    ERROR "'${APP}': Installation failed."
    # Cleanup tasks here
    case "${LSB_VENDOR}" in
      "CentOS")
          YUM_GROUPREMOVE "MATE Desktop"
          ;;
      "Debian"|"Ubuntu")
          APT_REMOVE "mate-desktop-environment"
          APT_REMOVE "mate-desktop"
          APT_AUTOREMOVE
          ;;
    esac
    RM_FILES "${USERHOME}/.config/dconf/user"
    RM_FILES "/etc/dconf/profile/user"
    RM_DIRS "/etc/dconf/db/mate.d"
    RM_FILES "/etc/dconf/db/mate"
    RUN_LOG "dconf update"
    RM_FILES "${USERHOME}/Images/rapidseedbox-wp-mate-template.jpg" \
             "${USERHOME}/Images/rapidseedbox-wp-mate.jpg"
fi

SCRIPTEXIT
