#!/bin/bash

SCRIPT_VER="1.8"

APP="Firefox"
APP_CATEGORY="Web Browsers"
APP_SCOPE="system"
APP_ENABLED="yes"
SUPPORTED_ON="CentOS7,CentOS8,CentOSStream8,Debian9,Debian10,Ubuntu16.04,Ubuntu18.04,Ubuntu20.04,Ubuntu22.04,Ubuntu24.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

    case "${LSB_VENDOR}" in
      "Debian"|"Devuan")
        PKG="firefox-esr"
        ;;
      *)
        case "${LSB_VER}" in
          "Ubuntu22.04"|"Ubuntu24.04")
              PKG="firefox-esr"
              if ! ls -A /etc/apt/sources.list.d/*mozillateam* > /dev/null 2>&1 ; then
                  ADD_APT_PPA "ppa:mozillateam/ppa" || break
              fi
              APT_UPDATE || break
              ;;
          *)
              PKG="firefox"
              ;;
        esac
        ;;
    esac

    ${PKG_INSTALL} "${PKG}" || break

    [ ! -d "/etc/skel/Desktop" ] && MKDIR "/etc/skel/Desktop"
    cat <<-EOF > "/etc/skel/Desktop/Firefox Web Browser.desktop"
	[Desktop Entry]
	Version=1.0
	Type=Application
	Name=Firefox Web Browser
	Comment=Browse the World Wide Web
	Exec=${PKG} %u
	Icon=${PKG}
	Path=
	Terminal=false
	StartupNotify=true
	EOF
    CHMOD_FILE 755 "/etc/skel/Desktop/Firefox Web Browser.desktop"
    if [ ! -d "${USERHOME}/Desktop" ] ; then
        MKDIR "${USERHOME}/Desktop"
        CHOWN_DIR "${USERNAME}":"${USERNAME}" "${USERHOME}/Desktop"
    fi
    CP_FILE "/etc/skel/Desktop/Firefox Web Browser.desktop" "${USERHOME}/Desktop/"
    CHOWN_FILE "${USERNAME}":"${USERNAME}" "${USERHOME}/Desktop/Firefox Web Browser.desktop"

    # Configure Firefox behaviour
    FF_DIR="/usr/lib/${PKG}"
    [ -d "/opt/firefox/defaults" ] && FF_DIR="/opt/firefox"
    [ ! -d "${FF_DIR}/defaults/pref" ] && MKDIR "${FF_DIR}/defaults/pref"
    cat <<-EOF > "${FF_DIR}/mozilla.cfg"
	// Set the homepage
	lockPref("browser.startup.homepage", "http://www.rapidseedbox.com");
	lockPref("browser.startup.page", 1);

	// Don't show WhatsNew on first run after every update
	pref("browser.startup.homepage_override.mstone","ignore");
	EOF
    cat <<-EOF > "${FF_DIR}/defaults/pref/autoconfig.js"
	//
	pref("general.config.obscure_value", 0);
	pref("general.config.filename", "mozilla.cfg");
	EOF

    case "${LSB_VENDOR}" in
      "Debian")
          # Flash
          APT_INSTALL "flashplugin-nonfree"
          ;;
      "Ubuntu")
          case "${LSB_VER}" in
            "Ubuntu22.04"|"Ubuntu24.04")
                ;;
            *)
                # Flash
                APT_INSTALL "flashplugin-installer"
                ;;
          esac
          ;;
    esac


    main_rc=0
    break

done


SCRIPTEXIT
