#!/bin/sh
PKGSTATUSFILE="/etc/zyxel/pkg_conf/status"
PKGVOLPATH=`grep "PHP-MySQL-phpMyAdmin" ${PKGSTATUSFILE} |grep "Installed-Rule" |awk -F":" '{print $2}' |sed 's/\/$//g' |sed 's/ //g'`
export LD_LIBRARY_PATH=${PKGVOLPATH}/lib:${LD_LIBRARY_PATH}
IFCONFIG="/sbin/ifconfig"
KEYWORD=WordPress
WPINSTPATH=`grep ${KEYWORD} ${PKGSTATUSFILE} |grep "Installed-Rule" |awk -F":" '{print $2}' |sed 's/\/$//g' |sed 's/ //g'`
BONDINTERFACE="bond0"
INTERFACEA="egiga0"
INTERFACEB="egiga1"
STATUSFILE="${WPINSTPATH}/config/WordPress/WordPress"
WPHTTPCONFPATH=/etc/pkg_service_conf/WordPress.conf
WPTMPCONFPATH=/etc/pkg_service_conf/WordPress.conf.bak
PHPMYSQLPATH=`grep "PHP-MySQL-phpMyAdmin" ${PKGSTATUSFILE} |grep "Installed-Rule" |awk -F":" '{print $2}' |sed 's/\/$//g' |sed 's/ //g'`
SQLEXEPATH=${PHPMYSQLPATH}/mysql/bin/mysql
SQLPATH=${PHPMYSQLPATH}/mysql
CONTROLFILE="${WPINSTPATH}/zypkg_conf/info/${KEYWORD}.control"
enable() {
	#Hank add to write httpd_package.conf and include PHP-MySQL-phpMyAdmin.conf
	if [ ! -e ${WPHTTPCONFPATH} ]; then
		touch ${WPHTTPCONFPATH}
	fi
	
	# give zypackage the grant of wordpress database
	$SQLEXEPATH -u zyadmin --password=1234 -e "grant ALL PRIVILEGES on ${KEYWORD}.* to zypackage@localhost identified by '1234'" > /dev/null 2>&1
	if [ $? -ne 0 ] ; then
		# if fail, reset zyadmin's password to 1234
		$SQLPATH/bin/reset_zyadmin

		# create zypackage and give the user grant of wordpress database
		$SQLEXEPATH -u zyadmin --password=1234 -e "grant ALL PRIVILEGES on ${KEYWORD}.* to zypackage@localhost identified by '1234'" > /dev/null 2>&1
	fi
	
	RESULT=`grep -n $KEYWORD /etc/pkg_service_conf/httpd_package2.conf |awk -F":" '{print $1}'`
	if [ "$RESULT" == "" ] ; then
		echo "Include ${WPHTTPCONFPATH}" >> /etc/pkg_service_conf/httpd_package2.conf
	fi

	# remove the line which contains "WordPress" in WordPress.conf
	RESULT=`grep -n $KEYWORD $WPHTTPCONFPATH |awk -F":" '{print $1}'`

	if [ "$RESULT" != "" ] ; then
		STR="`echo ${RESULT}`d"
		sed $STR $WPHTTPCONFPATH > $WPTMPCONFPATH
	else
		cp $WPHTTPCONFPATH $WPTMPCONFPATH
	fi
	echo "Alias /pkg/WordPress ${WPINSTPATH}/gui/WordPress" > ${WPTMPCONFPATH}

	if [ -d /usr/local/apache/htdocs/zyxel/ ]; then
		echo "<Directory ${WPINSTPATH}/gui/WordPress/`echo ${KEYWORD}`/>" >> $WPTMPCONFPATH
	else
		echo "<Directory ${WPINSTPATH}/gui/WordPress/`echo ${KEYWORD}`/>" >> $WPTMPCONFPATH
	fi
	echo "AllowOverride All" >> $WPTMPCONFPATH
	echo "</Directory>" >> $WPTMPCONFPATH
	mv $WPTMPCONFPATH $WPHTTPCONFPATH

	# Add "/WordPress" in AuthZyxelSkipPattern
	RESULT=`cat /etc/pkg_service_conf/httpd2.conf |grep $KEYWORD`
	if [ "$RESULT" == "" ]; then
		sed 's/AuthZyxelSkipPattern/& \/WordPress/' /etc/pkg_service_conf/httpd2.conf > /etc/pkg_service_conf/httpd2.conf.bak
		mv /etc/pkg_service_conf/httpd2.conf.bak /etc/pkg_service_conf/httpd2.conf
	fi
	
	#check the folder exist
	#if [ ! -f /usr/local/apache/htdocs/adv,/pkg/WordPress ]; then
	#	mkdir /usr/local/apache/htdocs/adv,/pkg/WordPress
	#fi
	
	#Mount the WordPerdd GUI
	#RESULTS=`cat /proc/mounts | grep htdocs\/adv,\/pkg\/WordPress`
	#if [ -z "$RESULTS" ]; then
	#	mount --bind ${WPINSTPATH}/gui/WordPress /usr/local/apache/htdocs/desktop,/pkg/WordPress
	#fi
	
	touch /tmp/restart_httpd
}

disable () {
	echo "Alias /pkg/WordPress ${WPINSTPATH}/gui/WordPress" > ${WPTMPCONFPATH}
	echo "RewriteRule \"(?i)/pkg/`echo ${KEYWORD}`\" \"/disable.html\" [R=301]" >> ${WPTMPCONFPATH}
	mv $WPTMPCONFPATH $WPHTTPCONFPATH
	
	# Add "/WordPress" in AuthZyxelSkipPattern
	RESULT=`cat /etc/pkg_service_conf/httpd2.conf |grep $KEYWORD`
	if [ "$RESULT" == "" ]; then
		sed 's/AuthZyxelSkipPattern/& \/WordPress/' /etc/pkg_service_conf/httpd2.conf > /etc/pkg_service_conf/httpd2.conf.bak
		mv /etc/pkg_service_conf/httpd2.conf.bak /etc/pkg_service_conf/httpd2.conf
	fi

	#umount the WordPerdd GUI
	#umount /usr/local/apache/htdocs/adv,/pkg/WordPress
	
	touch /tmp/restart_httpd
}

if [ "$1" == "getlink" ]; then
	BOND0=`${IFCONFIG} ${BONDINTERFACE} | grep "inet addr" | tr -s ' '`
	if [ "${BOND0}" == "" ]; then
		ADDR0=`${IFCONFIG} ${INTERFACEA} | grep "inet addr" | tr -s ' '`
		if [ "${ADDR0}" == "" ]; then
			ADDR1=`${IFCONFIG} ${INTERFACEB} | grep "inet addr" | tr -s ' '`
			echo  "http://`echo ${ADDR1} | cut -d ' ' -f 2 | cut -d ':' -f 2`:5000/pkg/`echo ${KEYWORD}`/"
		else
			echo  "http://`echo ${ADDR0} | cut -d ' ' -f 2 | cut -d ':' -f 2`:5000/pkg/`echo ${KEYWORD}`/"
		fi
	else
		echo  "http://`echo ${BOND0} | cut -d ' ' -f 2 | cut -d ':' -f 2`:5000/pkg/`echo ${KEYWORD}`/"
	fi
	
elif [ "$1" == "enable" ]; then
	enable
	echo "Enabled" > $STATUSFILE
elif [ "$1" == "disable" ]; then
	disable
	echo "Disabled" > $STATUSFILE
elif [ "$1" == "status" ]; then
	if [ -f $STATUSFILE ]; then
		echo `cat $STATUSFILE`
	else
		mkdir -p ${STATUSFILE%/*}
		echo "Disabled" > $STATUSFILE
		echo `cat $STATUSFILE`
	fi
elif [ "$1" == "startup" ]; then
	STATUS=`cat $STATUSFILE`
	#check upnp database
	UPNPCOUNT=`sqlite3 /etc/zyxel/upnp.db "SELECT COUNT(*) FROM upnpInfo WHERE service='WORDPRESS_HTTP'"`
	if [ 0 == $UPNPCOUNT ]; then
		/usr/local/upnp/install_upnpDB.sh WORDPRESS_HTTP 5000 'http://ip:port/pkg/WordPress/' 'This allows you to create and manage a blog. Use the NAS administrator credentials to log in. The administrator can then create accounts for other users.'
		/usr/local/upnp/install_upnpDB.sh WORDPRESS_HTTPS 5001 'https://ip:port/pkg/WordPress/' 'This allows you to create and manage a blog. Use the NAS administrator credentials to log in. The administrator can then create accounts for other users.'	
	fi

	if [ "$STATUS" == "Enabled" ]; then
		enable
	else
		disable
	fi
elif [ "$1" == "shutdown" ]; then
	#umount /usr/local/apache/htdocs/adv,/pkg/WordPress
	continue
elif [ "$1" == "version" ]; then
	VERSION=`grep "Version:" ${CONTROLFILE} | awk -F"zypkg" '{print $2}'`
	return ${VERSION}
fi

exit 0
