#!/bin/sh

# Package
PACKAGE="virtualbox"
DNAME="VirtualBox"
PACKAGE_NAME="com.synocommunity.packages.${PACKAGE}"

# Others
INSTALL_DIR="/usr/local/${PACKAGE}"
DEFAULT_CFG_FILE="/usr/local/${PACKAGE}/www/config.php.synology"
WEB_DIR="/var/services/web"
CFG_FILE="${WEB_DIR}/phpvirtualbox/config.php"

preinst ()
{
    exit 0
}

postinst ()
{
    # Link
    ln -s ${SYNOPKG_PKGDEST} ${INSTALL_DIR}

    # Install the phpVirtualBox web interface
    cp -pR ${INSTALL_DIR}/www/phpvirtualbox ${WEB_DIR}

    # Create a default configuration file for phpVirtualBox
    if [ ! -f ${CFG_FILE} ]; then
      cp ${DEFAULT_CFG_FILE} ${CFG_FILE}
      noAuth=$([ "${wizard_no_auth}" == "true" ] && echo "true" || echo "false")
      enableAdvancedConfig=$([ "${wizard_enable_advanced_config}" == "true" ] && echo "true" || echo "false")
      startStopConfig=$([ "${wizard_start_stop_config}" == "true" ] && echo "true" || echo "false")
      sed -i -e "s|@pass@|${wizard_vbox_pass:=}|g" ${CFG_FILE}
      sed -i -e "s|@noAuth@|${noAuth:=true}|g" ${CFG_FILE}
      sed -i -e "s|@enableAdvancedConfig@|${enableAdvancedConfig:=true}|g" ${CFG_FILE}
      sed -i -e "s|@startStopConfig@|${startStopConfig:=true}|g" ${CFG_FILE}
      chmod ga+w ${CFG_FILE}
    fi

    # Create a default configuration file for VirtualBox
	if [ ! -d "/etc/vbox" ]; then
		cp -rf "${INSTALL_DIR}"/etc/vbox /etc/
		action="acpibutton"
		action=$([ "${wizard_on_stop_poweroff}" == "true" ] && echo "poweroff" || echo $action)
		action=$([ "${wizard_on_stop_acpibutton}" == "true" ] && echo "acpibutton" || echo $action)
		action=$([ "${wizard_on_stop_savestate}" == "true" ] && echo "savestate" || echo $action)
		sed -i -e "s|acpibutton|${action}|g" /etc/vbox/vbox.cfg
	fi 
	
    # Install vbox to /opt/VirtualBox
    if [ ! -d /opt ]; then
	  mkdir /opt
	fi 

	cp -pR "${INSTALL_DIR}/opt/VirtualBox" /opt/VirtualBox

    exit 0
}

preuninst ()
{
    exit 0
}

postuninst ()
{
    # Remove link
    rm -f ${INSTALL_DIR}

    # Remove the web interface
    rm -fr ${WEB_DIR}/phpvirtualbox

    if [ -d /etc/vbox ]; then
		rm -fr /etc/vbox
    fi

	# Remove drivers
	if [ -f /lib/modules/3.2.40/vboxdrv.ko ]; then
		rm -f /lib/modules/3.2.40/modules.dep
		rm -f /lib/modules/3.2.40/vboxdrv.ko
		rm -f /lib/modules/3.2.40/vboxnetflt.ko
		rm -f /lib/modules/3.2.40/vboxnetadp.ko
		rm -f /lib/modules/3.2.40/vboxpci.ko
		if [ ! "$(ls -A /lib/modules/3.2.40)" ]; then
			rmdir /lib/modules/3.2.40
		fi		
	fi

	# Remove vbox
	if [ -d /opt/VirtualBox ]; then
		rm -fr /opt/VirtualBox
		if [ ! "$(ls -A /opt)" ]; then
			rmdir /opt
		fi		
	fi
	
    exit 0
}

preupgrade ()
{
    # Save some stuff
    rm -fr ${TMP_DIR}/${PACKAGE}
    mkdir -p ${TMP_DIR}/${PACKAGE}
    mv ${CFG_FILE} ${TMP_DIR}/${PACKAGE}/

    exit 0
}

postupgrade ()
{
    # Restore some stuff
    rm -f ${CFG_FILE}
    mv ${TMP_DIR}/${PACKAGE}/config.php ${CFG_FILE}
    rm -fr ${TMP_DIR}/${PACKAGE}

    exit 0
}
