#!/bin/bash

SCRIPT_VER="1.4"

APP="MKVToolNix"
APP_CATEGORY="Multimedia"
APP_SCOPE="system"
APP_ENABLED="yes"
SUPPORTED_ON="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

    if [ ! -d "/etc/apt/sources.list.d" ] ; then
        MKDIR "/etc/apt/sources.list.d" || break
    fi

    ADD_APT_KEY_URL "https://mkvtoolnix.download/gpg-pub-moritzbunkus.txt" "mkvtoolnix.gpg"
    if [ $? -ne 0 ] ; then
        ERROR "Error adding ${APP} repository key!" ; break
    fi
    cat <<-EOF > "/etc/apt/sources.list.d/mkvtoolnix.list"
	#deb https://mkvtoolnix.download/ubuntu/${LSB_CODENAME}/ ./
	#deb-src https://mkvtoolnix.download/ubuntu/${LSB_CODENAME}/ ./
	deb [arch=amd64] https://mkvtoolnix.download/ubuntu/ ${LSB_CODENAME} main
	deb-src [arch=amd64] https://mkvtoolnix.download/ubuntu/ ${LSB_CODENAME} main 
	EOF
    if [ $? -ne 0 ] ; then
        ERROR "Error adding ${APP} repository!" ; break
    fi
    APT_UPDATE || break

    APT_INSTALL "mkvtoolnix" "mkvtoolnix-gui" || break

    [ ! -d "/etc/skel/Desktop" ] && MKDIR "/etc/skel/Desktop"
    cat <<-EOF > "/etc/skel/Desktop/MKVToolNix GUI.desktop"
	[Desktop Entry]
	Version=1.0
	Type=Application
	Name=MKVToolNix GUI
	Comment=
	Exec=mkvtoolnix-gui %F
	Icon=mkvtoolnix-gui
	Path=
	Terminal=false
	StartupNotify=false
	EOF
    CHMOD_FILE 755 "/etc/skel/Desktop/MKVToolNix GUI.desktop"
    if [ ! -d "${USERHOME}/Desktop" ] ; then
        MKDIR "${USERHOME}/Desktop"
        CHOWN_DIR "${USERNAME}":"${USERNAME}" "${USERHOME}/Desktop"
    fi
    CP_FILE "/etc/skel/Desktop/MKVToolNix GUI.desktop" "${USERHOME}/Desktop/"
    CHOWN_FILE "${USERNAME}":"${USERNAME}" "${USERHOME}/Desktop/MKVToolNix GUI.desktop"


    main_rc=0
    break

done

# Cleanup if error
if [ ${main_rc} -ne 0 -a ${main_rc} -ne 111 -a ${main_rc} -ne 117 ] ; then
    if [ -e "/etc/apt/sources.list.d/bunkus.org.list" ] ; then
        RM_FILES "/etc/apt/sources.list.d/bunkus.org.list"
        APT_UPDATE
    fi
fi

SCRIPTEXIT
