#!/bin/sh

IFCONFIG="/sbin/ifconfig"
INTERFACE="egiga0"
STATUSFILE="/usr/local/zy-pkgs/config/ownCloud/ownCloud"
HTTPCONFPATH=/etc/service_conf/httpd_package.conf
TMPCONFPATH=/etc/service_conf/httpd_package.conf.bak
KEYWORD=ownCloud
PKGPATH=/usr/local/zy-pkgs
ADMINPATH=/i-data/md0/admin/zy-pkgs
TMP=/tmp/owncloud_tmp
DATAPATHFILE=/i-data/md0/.system/zy-pkgs/config/OwnCloudDataPath
BKDATAPATHFILE=/i-data/md0/.system/OwnCloudDataPath_bk
PKGLOGFILE=/usr/local/zy-pkgs/tmp/zypkg.log
#prevet nas reset to default, it would delete DATAPATHFILE
if [ -f $DATAPATHFILE ];  then
	echo "$DATAPATHFILE :File exists!" >> $PKGLOGFILE
else
	cp -a $BKDATAPATHFILE $DATAPATHFILE
fi

DATAPATH=`cat /i-data/md0/.system/zy-pkgs/config/OwnCloudDataPath`

enable() {

	# Delete the line which contains paths of "ownCloud data and program" 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
	
	# Adding the apache config setting for ownCloud's program
	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 "Options FollowSymLinks" >> $TMPCONFPATH
	echo "AllowOverride All" >> $TMPCONFPATH
	echo "Order allow,deny" >> $TMPCONFPATH
	echo "Allow from all" >> $TMPCONFPATH
	echo "RewriteEngine on" >> $TMPCONFPATH
	echo "RewriteBase /usr/local/apache/htdocs/adv,/pkg/`echo ${KEYWORD}`/" >> $TMPCONFPATH
	echo "</Directory>" >> $TMPCONFPATH
	
	# Adding the apache config setting for accessing ownCloud's data
	echo " " >> $TMPCONFPATH
	echo "<Directory ${DATAPATH}>" >> $TMPCONFPATH
	echo "AllowOverride All" >> $TMPCONFPATH
	echo "Order allow,deny" >> $TMPCONFPATH
	echo "Allow from all" >> $TMPCONFPATH
	echo "</Directory>" >> $TMPCONFPATH
	
	mv $TMPCONFPATH $HTTPCONFPATH

	# Add "/ownCloud" in AuthZyxelSkipPattern
	RESULT=`cat /etc/service_conf/httpd.conf |grep $KEYWORD`
	if [ "$RESULT" == "" ]; then
		sed 's/AuthZyxelSkipPattern/& \/ownCloud/' /etc/service_conf/httpd.conf > /etc/service_conf/httpd.conf.bak
		mv /etc/service_conf/httpd.conf.bak /etc/service_conf/httpd.conf
	fi
	
	echo "Enabled" > $STATUSFILE
	touch /tmp/restart_httpd
}

disable () {
	#check if the line contains "ownCloud" exists, and remove the line if it exists.
	RESULT=`grep -n $KEYWORD $HTTPCONFPATH |grep -v "RewriteBase"|awk -F":" '{print $1}' | sed -n '1p'`
	
	if [ "$RESULT" == "" ] ; then
		cp $HTTPCONFPATH $TMPCONFPATH
	else
		STR=`grep -n $KEYWORD $HTTPCONFPATH |grep -v "RewriteBase"|awk -F":" '{print $1}' | sed -n '1p'`
		sed "$STR,$((STR+13))d" $HTTPCONFPATH > $TMPCONFPATH
	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

	# Remove "/ownCloud" in AuthZyxelSkipPattern
	RESULT=`cat /etc/service_conf/httpd.conf |grep $KEYWORD`
	if [ "$RESULT" == "" ]; then
		sed 's/AuthZyxelSkipPattern/& \/ownCloud/' /etc/service_conf/httpd.conf > /etc/service_conf/httpd.conf.bak
		mv /etc/service_conf/httpd.conf.bak /etc/service_conf/httpd.conf
	fi
	echo "Disabled" > $STATUSFILE
	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

	STATUS=`cat $STATUSFILE`
	if [ "$STATUS" == "Enabled" ]; then
		enable
	else
		disable
	fi
elif [ "$1" == "shutdown" ]; then
	killall php
fi

exit 0
