#!/bin/sh

IFCONFIG="/sbin/ifconfig"
INTERFACE="egiga0"
STATUSFILE="/usr/local/zy-pkgs/config/WordPress/WordPress"
HTTPCONFPATH=/etc/service_conf/httpd_package.conf
TMPCONFPATH=/etc/service_conf/httpd_package.conf.bak
KEYWORD=WordPress
PKGPATH=/usr/local/zy-pkgs
SQLEXEPATH=/usr/local/zy-pkgs/mysql/bin/mysql
SQLPATH=/usr/local/zy-pkgs/mysql
ADMINPATH=/i-data/md0/admin/zy-pkgs

enable() {
	# 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

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

	if [ "$RESULT" != "" ] ; then
		STR="`echo ${RESULT}`d"
		sed $STR $HTTPCONFPATH > $TMPCONFPATH
	else
		cp $HTTPCONFPATH $TMPCONFPATH
	fi

	if [ -d /usr/local/apache/htdocs/zyxel/ ]; then
		echo "<Directory /usr/local/apache/htdocs/zyxel/pkg/`echo ${KEYWORD}`/>" >> $TMPCONFPATH
	else
		echo "<Directory /usr/local/apache/htdocs/adv,/pkg/`echo ${KEYWORD}`/>" >> $TMPCONFPATH
	fi
	echo "AllowOverride All" >> $TMPCONFPATH
	echo "</Directory>" >> $TMPCONFPATH
	mv $TMPCONFPATH $HTTPCONFPATH

	# Add "/WordPress" in AuthZyxelSkipPattern
	RESULT=`cat /etc/service_conf/httpd.conf |grep $KEYWORD`
	if [ "$RESULT" == "" ]; then
		sed 's/AuthZyxelSkipPattern/& \/WordPress/' /etc/service_conf/httpd.conf > /etc/service_conf/httpd.conf.bak
		mv /etc/service_conf/httpd.conf.bak /etc/service_conf/httpd.conf
	fi

	touch /tmp/restart_httpd
}

disable () {
	#check if the line contains "WordPress" exists, and add the line if it not exists.
	RESULT=`grep -n $KEYWORD $HTTPCONFPATH |awk -F":" '{print $1}'`
	
	if [ "$RESULT" == "" ] ; then
		cp $HTTPCONFPATH $TMPCONFPATH
	else
		if [ `grep -c $KEYWORD $HTTPCONFPATH` -gt 1 ] ; then
			STR="`echo ${RESULT} | cut -d ' ' -f 1`d"
			sed $STR $HTTPCONFPATH > $TMPCONFPATH
			STR2="`echo ${RESULT} | cut -d ' ' -f 2`"
			sed $(($STR2-1)),$(($STR2+2))d $TMPCONFPATH > $TMPCONFPATH #delete 1 line in line 59,so $(($STR2-1))
		else
			STR2="`echo ${RESULT} | cut -d ' ' -f 1`"
			sed $STR2,$(($STR2+2))d $HTTPCONFPATH > $TMPCONFPATH
		fi
	fi

	MODELNAME=`cat /etc/modelname`
	if [ "$MODELNAME" == "NSA221" ] || [ "$MODELNAME" == "NSA210" ] || [ "$MODELNAME" == "NSA320" ]; then
		echo "RewriteRule \"(?i)/pkg/`echo ${KEYWORD}`\" \"/zyxel/disable.html\" [R=301]" >> $TMPCONFPATH
	else
		echo "RewriteRule \"(?i)/pkg/`echo ${KEYWORD}`\" \"/disable.html\" [R=301]" >> $TMPCONFPATH
	fi

	mv $TMPCONFPATH $HTTPCONFPATH

	# Add "/WordPress" in AuthZyxelSkipPattern
	RESULT=`cat /etc/service_conf/httpd.conf |grep $KEYWORD`
	if [ "$RESULT" == "" ]; then
		sed 's/AuthZyxelSkipPattern/& \/WordPress/' /etc/service_conf/httpd.conf > /etc/service_conf/httpd.conf.bak
		mv /etc/service_conf/httpd.conf.bak /etc/service_conf/httpd.conf
	fi

	touch /tmp/restart_httpd
}

if [ "$1" == "getlink" ]; then
	ADDR=`${IFCONFIG} ${INTERFACE} | grep "inet addr" | tr -s ' '`
	echo  "http://`echo ${ADDR} | cut -d ' ' -f 2 | cut -d ':' -f 2`/pkg/`echo ${KEYWORD}`/"
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
	#make the folder in /i-data/md0/admin
	mkdir $ADMINPATH/$KEYWORD

	mkdir $ADMINPATH/$KEYWORD/plugins
	mkdir $ADMINPATH/$KEYWORD/themes
	mkdir $ADMINPATH/$KEYWORD/uploads

	# mount bind from /usr/local/zy-pkgs to /i-data/md0/admin
	mount --bind $PKGPATH/gui/$KEYWORD/wp-content/plugins $ADMINPATH/$KEYWORD/plugins
	mount --bind $PKGPATH/gui/$KEYWORD/wp-content/uploads $ADMINPATH/$KEYWORD/uploads
	mount --bind $PKGPATH/gui/$KEYWORD/wp-content/themes $ADMINPATH/$KEYWORD/themes

	STATUS=`cat $STATUSFILE`
	if [ "$STATUS" == "Enabled" ]; then
		enable
	else
		disable
	fi
elif [ "$1" == "shutdown" ]; then
	#umount the link of /i-data/md0/admin
	umount $ADMINPATH/$KEYWORD/plugins
	umount $ADMINPATH/$KEYWORD/uploads
	umount $ADMINPATH/$KEYWORD/themes
fi

exit 0
