#!/bin/bash

SCRIPT_VER="1.4"

APP="IceWM Desktop"
APP_CATEGORY="Desktop Environments"
APP_SCOPE="system"
APP_ENABLED="yes"
STORED_PASSWORD_SERVICE="user"
SUPPORTED_ON="CentOS7,CentOS8,CentOSStream8,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

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

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

    case "${LSB_VENDOR}" in
      "CentOS")
          if [ "${LSB_RELEASE}" = "8" ] ; then
              YUM_GROUPINSTALL "Server with GUI" || break
          else
              YUM_GROUPINSTALL "X Window System" || break
          fi
          ;;
    esac
    ${PKG_INSTALL} "icewm" || break

    # Build 'feh' on CentOS
    if [ "${LSB_VENDOR}" = "CentOS" ] ; then
        ${PKG_INSTALL} "git-core" "gcc" "gcc-c++" "make" \
                       "libX11-devel" "libXinerama-devel" \
                       "imlib2-devel" "libpng-devel" \
                       "libcurl-devel" "libXt-devel"
        if [ $? -eq 0 ] ; then
            GIT_CLONE "git://git.finalrewind.org/feh" "${TMP_DIR}/feh"
            oWD=$( pwd )
            cd "${TMP_DIR}/feh"
            RUN_LOG "make 2>&1" && RUN_LOG "make install 2>&1"
            [ $? -eq 0 ] && LN "/usr/local/bin/feh"   "/usr/bin/feh"
            cd "${oWD}"
        fi
    fi

    # Build 'feh' on Debian 9 `stretch`
    if [ "${LSB_VER}" = "Debian9" ] ; then
        ${PKG_INSTALL} "build-essential" "git-core" \
                       "libx11-dev" "libxinerama-dev" \
                       "libimlib2-dev" "libpng-dev" \
                       "libxt-dev" \
                       "libcurl4-openssl-dev"

        if [ $? -eq 0 ] ; then
            GIT_CLONE "git://git.finalrewind.org/feh" "${TMP_DIR}/feh"
            oWD=$( pwd )
            cd "${TMP_DIR}/feh"
            RUN_LOG "make 2>&1" && RUN_LOG "make install 2>&1"
            [ $? -eq 0 ] && LN "/usr/local/bin/feh"   "/usr/bin/feh"
            cd "${oWD}"
        fi
    fi

    # Fetch config files
    WGET "${SUPPORT}/icewm/icewm-config.tar.gz" \
        && TAR_ZXF "${TMP_DIR}/icewm-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 northeast \
                       '${TMP_DIR}/logo.jpg' \
                       '${USERHOME}/Images/rapidseedbox-wp-icewm-template.jpg' \
                       '${USERHOME}/Images/rapidseedbox-wp-icewm.jpg' 2>&1"
            # Version info
            RUN_LOG "convert '${USERHOME}/Images/rapidseedbox-wp-icewm.jpg' \
                      -gravity northwest \
                      -pointsize 16 \
        	      -fill yellow -annotate +2+0 '${LSB_DESCRIPTION}' \
                    '${USERHOME}/Images/rapidseedbox-wp-icewm.jpg' 2>&1"
        else
            CP_FILE "${USERHOME}/Images/rapidseedbox-wp-icewm-template.jpg" \
                    "${USERHOME}/Images/rapidseedbox-wp-icewm.jpg"
        fi


        MKDIR "${USERHOME}/.icewm"
        cat <<-EOF > "${USERHOME}/.icewm/startup" 2>> "${LOGFILE}"
		#feh --bg-fill ${USERHOME}/Images/rapidseedbox-wp-icewm.jpg &
		feh --bg-scale ${USERHOME}/Images/rapidseedbox-wp-icewm.jpg &
		EOF
        CHMOD_FILE 0755 "${USERHOME}/.icewm/startup"
        CHOWN_DIR "${USERNAME}":"${USERNAME}" "${USERHOME}/.icewm"
    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
    ${PKG_REMOVE} "icewm"
    RM_DIRS "${USERHOME}/.icewm"
    RM_FILES "${USERHOME}/Images/rapidseedbox-wp-icewm-template.jpg" \
             "${USERHOME}/Images/rapidseedbox-wp-icewm.jpg"
fi

SCRIPTEXIT
