#!/bin/sh
HTTPCONFPATH=/etc/service_conf/httpd.conf
TMPCONFPATH=/etc/service_conf/httpd.conf.bak
PKGCONF=/etc/service_conf/httpd_package.conf
TMPPKGCONF=/etc/service_conf/httpd_package.conf.bak
PKGPATH=/usr/local/zy-pkgs
KEYWORD=gallery
ADMINPATH=/i-data/md0/admin/zy-pkgs
PKG_RESET=/tmp/PKG_RESET
PKGPATH=/usr/local/zy-pkgs

dobackup() {
	if `! test -d $PKGPATH/backup/`; then
		mkdir $PKGPATH/backup
	fi

	if `test -d $PKGPATH/backup/$KEYWORD/`; then
		mv $PKGPATH/backup/$KEYWORD $PKGPATH/backup/$KEYWORD.bak
	fi

	mkdir $PKGPATH/backup/$KEYWORD
	cd $PKGPATH/mysql/var
	tar zcvf $PKGPATH/backup/$KEYWORD/$KEYWORD.tgz $KEYWORD/

	if [ $? -eq 0 ] ; then
		rm -rf $PKGPATH/backup/$KEYWORD.bak

		# backup the /modules and /themes to /usr/local/zy-pkgs/backup/gallery
		rm -rf $PKGPATH/backup/$KEYWORD/modules
		mv $PKGPATH/gui/$KEYWORD/modules $PKGPATH/backup/$KEYWORD/
		rm -rf $PKGPATH/backup/$KEYWORD/themes
		mv $PKGPATH/gui/$KEYWORD/themes $PKGPATH/backup/$KEYWORD/
	else
		if `test -d $PKGPATH/backup/$KEYWORD.bak/`; then
			mv $PKGPATH/backup/$KEYWORD.bak $PKGPATH/backup/$KEYWORD
		fi
	fi
}

# remove "gallery" in AuthZyxelSkipPattern
sed 's/ \/gallery / /' $HTTPCONFPATH > $TMPCONFPATH
mv $TMPCONFPATH $HTTPCONFPATH

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

if [ "$RESULT" != "" ] ; then
	if [ `grep -c "AllowOverride All" $PKGCONF` > 0 ] ; then
		STR="`echo ${RESULT}`"
		sed $STR,$(($STR+2))d $PKGCONF > $TMPPKGCONF
	else
		STR="`echo ${RESULT}`d"
		sed $STR $PKGCONF > $TMPPKGCONF
	fi
	mv $TMPPKGCONF $PKGCONF
fi

touch /tmp/restart_httpd

#Check if gallery DB backup is neccessary
if [ -f $PKG_RESET ] && [ -r $PKG_RESET ]; then
	grep -n $KEYWORD $PKG_RESET
	#not exist in /tmp/PKG_RESET => do backup
	if [ $? -ne 0 ]; then
		dobackup
	else
		rm -rf $PKGPATH/backup/$KEYWORD
	fi
# /tmp/PKG_RESET does not exist => do backup
else
	dobackup
fi

#Drop database
cd $PKGPATH/mysql/bin
./mysql -D $KEYWORD -u zyadmin --password=1234 -e "DROP DATABASE $KEYWORD"

cd $ADMINPATH
lsof -n | grep /admin/zy-pkgs/$KEYWORD | awk -F' ' '{print $2}' > /tmp/PKG_UMNT_CHECK
if [ "$?" = "0" ]; then
	cat /tmp/PKG_UMNT_CHECK | ( while read ZZZ ; do
		kill -9 $ZZZ
	done )
fi

sleep 2

#umount the link of /i-data/md0/admin
umount -f $ADMINPATH/$KEYWORD/modules
umount -f $ADMINPATH/$KEYWORD/themes

umount -f $PKGPATH/gui/$KEYWORD/var/
if [ -d /usr/local/apache/htdocs/zyxel/ ]; then
	umount -f /usr/local/apache/htdocs/zyxel/pkg/$KEYWORD/var/
else
	umount -f /usr/local/apache/htdocs/adv,/pkg/$KEYWORD/var/
fi

rm /tmp/PKG_UMNT_CHECK
