#!/bin/sh
PKGSTATUSFILE="/etc/zyxel/pkg_conf/status"
PKG_NAME="gallery"
GALLERYPATH=`grep ${PKG_NAME} ${PKGSTATUSFILE} |grep "Installed-Rule" |awk -F":" '{print $2}' |sed 's/\/$//g' |sed 's/ //g'`
CONTROLFILE="${GALLERYPATH}/zypkg_conf/info/${PKG_NAME}.control"

PKGVOLPATH=`grep "PHP-MySQL-phpMyAdmin" ${PKGSTATUSFILE} |grep "Installed-Rule" |awk -F":" '{print $2}' |sed 's/\/$//g' |sed 's/ //g'`
IFCONFIG="/sbin/ifconfig"
BONDINTERFACE="bond0"
INTERFACEA="egiga0"
INTERFACEB="egiga1"
STATUSFILE="${GALLERYPATH}/config/${PKG_NAME}/${PKG_NAME}"
HTTPCONFPATH="/etc/pkg_service_conf/gallery.conf"
TMPCONFPATH="/etc/pkg_service_conf/gallery.conf.bak"
SQLEXEPATH=${PKGVOLPATH}/mysql/bin/mysql
SQLPATH=${PKGVOLPATH}/mysql
PHPMYSQLPATH=`grep "PHP-MySQL-phpMyAdmin" ${PKGSTATUSFILE} |grep "Installed-Rule" |awk -F":" '{print $2}' |sed 's/\/$//g' |sed 's/ //g'`
export LD_LIBRARY_PATH=${PKGVOLPATH}/lib:${GALLERYPATH}/gui/gallery/lib/ImageMagick/lib:${LD_LIBRARY_PATH}

enable() {
	#Fixed the Mysql table, try two times to sure it is correct.....
	${PHPMYSQLPATH}/mysql/bin/myisamchk --silent --force --fast --update-state ${PHPMYSQLPATH}/mysql/data/gallery/*MYI
	sleep 2 
	${PHPMYSQLPATH}/mysql/bin/myisamchk --silent --force --fast --update-state ${PHPMYSQLPATH}/mysql/data/gallery/*MYI
	
	#check the soft link of ImameMagick
	if [ ! -e /i-data/.system/zy-pkgs/pkglib/gallery ]; then
		ln -s $GALLERYPATH/gui/gallery/lib/ImageMagick /i-data/.system/zy-pkgs/pkglib/gallery
	fi

	# give zypackage the grant of gallery database
	$SQLEXEPATH -u zyadmin --password=1234 -e "grant ALL PRIVILEGES on gallery.* 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 gallery database
		$SQLEXEPATH -u zyadmin --password=1234 -e "grant ALL PRIVILEGES on gallery.* to zypackage@localhost identified by '1234'" > /dev/null 2>&1
	fi

	#Hank Add the Include in httpd_package.conf
	if [ ! -e ${HTTPCONFPATH} ]; then
		touch ${HTTPCONFPATH}
	fi

	RESULT=`grep -n $PKG_NAME /etc/pkg_service_conf/httpd_package2.conf |awk -F":" '{print $1}'`
	if [ "$RESULT" == "" ] ; then
		echo "Include ${HTTPCONFPATH}" >> /etc/pkg_service_conf/httpd_package2.conf
	fi
	#in order to change upload max size
	echo "Alias /pkg/gallery ${GALLERYPATH}/gui/gallery" > ${TMPCONFPATH}
	if [ -d /usr/local/apache/htdocs/zyxel/ ]; then
		echo "<Directory ${GALLERYPATH}/gui/gallery/>" >> $TMPCONFPATH
	else
		echo "<Directory ${GALLERYPATH}/gui/gallery/>" >> $TMPCONFPATH
	fi
	echo "AllowOverride All" >> $TMPCONFPATH
	echo "</Directory>" >> $TMPCONFPATH
	mv $TMPCONFPATH $HTTPCONFPATH

	# Add "/gallery" in AuthZyxelSkipPattern
	RESULT=`cat /etc/pkg_service_conf/httpd2.conf |grep $PKG_NAME`
	if [ "$RESULT" == "" ]; then
		sed 's/AuthZyxelSkipPattern/& \/gallery/' /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

	touch /tmp/restart_httpd
}

disable () {
	echo "Alias /pkg/gallery ${GALLERYPATH}/gui/gallery" > ${TMPCONFPATH}
	echo "RewriteRule \"(?i)/pkg/`echo ${PKG_NAME}`\" \"/disable.html\" [R=301]" >> $TMPCONFPATH
	mv $TMPCONFPATH $HTTPCONFPATH

	# Add "/gallery" in AuthZyxelSkipPattern
	RESULT=`cat /etc/pkg_service_conf/httpd2.conf |grep $PKG_NAME`
	if [ "$RESULT" == "" ]; then
		sed 's/AuthZyxelSkipPattern/& \/gallery/' /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

	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 ${PKG_NAME}`/"
		else
			echo  "http://`echo ${ADDR0} | cut -d ' ' -f 2 | cut -d ':' -f 2`:5000/pkg/`echo ${PKG_NAME}`/"
		fi
	else	
		echo  "http://`echo ${BOND0} | cut -d ' ' -f 2 | cut -d ':' -f 2`:5000/pkg/`echo ${PKG_NAME}`/"
	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
	#check upnp database
	UPNPCOUNT=`sqlite3 /etc/zyxel/upnp.db "SELECT COUNT(*) FROM upnpInfo WHERE service='GALLERY_HTTP'"`
	if [ 0 == $UPNPCOUNT ]; then
		/usr/local/upnp/install_upnpDB.sh GALLERY_HTTP 5000 'http://ip:port/pkg/gallery' 'This web-based application allows your NAS to host pictures. Use the NAS administrator credentials to log in. The administrator can then create accounts for other users.'
		/usr/local/upnp/install_upnpDB.sh GALLERY_HTTPS 5001 'https://ip:port/pkg/gallery' 'This web-based application allows your NAS to host pictures. Use the NAS administrator credentials to log in. The administrator can then create accounts for other users.'
	fi
	STATUS=`cat $STATUSFILE`
	if [ "$STATUS" == "Enabled" ]; then
		enable
	else
		disable
	fi
elif [ "$1" == "shutdown" ]; then
	echo "Do nothing"
elif [ "$1" == "version" ]; then
	VERSION=`grep "Version:" ${CONTROLFILE} | awk -F"zypkg" '{print $2}'`
	return ${VERSION}
fi

exit 0
