#!/bin/sh
KEYWORD=gallery
PKGPATH=/usr/local/zy-pkgs
ADMINPATH=/i-data/md0/admin/zy-pkgs
MYSQLPATH=/usr/local/zy-pkgs/mysql/bin

# restore gallery DB if exists
if [ -f $PKGPATH/backup/$KEYWORD/$KEYWORD.tgz ]; then
	# keep gallery3 & gallery2 database
	mv $PKGPATH/mysql/var/$KEYWORD $PKGPATH/mysql/var/gallery3
	cd $PKGPATH/mysql/var
	tar zxvf $PKGPATH/backup/$KEYWORD/$KEYWORD.tgz
fi

chmod -R 777 $PKGPATH/mysql/var/
chmod -R 777 $PKGPATH/gui/$KEYWORD/modules/
chmod -R 777 $PKGPATH/gui/$KEYWORD/var/
chmod -R 777 $PKGPATH/gui/$KEYWORD/themes/

# upgrade gallery2 to gallery3
if [ ! -f $PKGPATH/mysql/var/$KEYWORD/galleryVersion ] && [ -d $PKGPATH/backup/$KEYWORD/modules ]; then
	#database name is gallery in database.php. database name is gallery3 in database-tmp.php
	mv $PKGPATH/gui/$KEYWORD/var/database.php $PKGPATH/gui/$KEYWORD/var/database-new.php
	mv $PKGPATH/gui/$KEYWORD/var/database-tmp.php $PKGPATH/gui/$KEYWORD/var/database.php
	#imoort gallery2 need files.
	cp $PKGPATH/gui/$KEYWORD/tmp/bootstrap.inc $ADMINPATH/$KEYWORD
	cp $PKGPATH/gui/$KEYWORD/tmp/embed.php $ADMINPATH/$KEYWORD
	cp $PKGPATH/gui/$KEYWORD/tmp/main.php $ADMINPATH/$KEYWORD
	cp $PKGPATH/gui/$KEYWORD/tmp/init.inc $ADMINPATH/$KEYWORD
	cp $PKGPATH/gui/$KEYWORD/tmp/config.php $ADMINPATH/$KEYWORD
	cp -rf $PKGPATH/gui/$KEYWORD/tmp/lib $ADMINPATH/$KEYWORD

	cp -rf $PKGPATH/backup/$KEYWORD/modules $ADMINPATH/$KEYWORD

	# change from "=& new" to "= new" in GalleryUtilities.class/GalleryStorage.class
	cp $PKGPATH/gui/$KEYWORD/tmp/GalleryUtilities.class $ADMINPATH/$KEYWORD/modules/core/classes
	cp $PKGPATH/gui/$KEYWORD/tmp/GalleryStorage.class $ADMINPATH/$KEYWORD/modules/core/classes

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

	#kill httpd
	PSCNT=`ps | grep "httpd" | grep -v "grep" | wc -l | sed -e 's/ //g'`
	if [ "$PSCNT" -ne 0 ]; then
		killall httpd
		while test `ps | grep "httpd" | grep -v "grep" | wc -l | sed -e 's/ //g'` -gt 0
		do
			sleep 1
		done
	fi
	#restart httpd
	/usr/sbin/httpd -f /etc/service_conf/httpd.conf

	#Gallery's database will corrupt after restarting httpd.
	$MYSQLPATH/mysqlcheck -uroot -p1234 --auto-repair --check --optimize --all-databases

	#call url to import gallery2
	sleep 30
	python /usr/local/zy-pkgs/zypkg_conf/info/gallery.import_gallery2.py

	rm -rf $PKGPATH/gui/$KEYWORD/tmp
	rm $ADMINPATH/$KEYWORD/bootstrap.inc
	rm $ADMINPATH/$KEYWORD/embed.php
	rm $ADMINPATH/$KEYWORD/main.php
	rm $ADMINPATH/$KEYWORD/init.inc
	rm $ADMINPATH/$KEYWORD/config.php
	rm -rf $ADMINPATH/$KEYWORD/lib
	rm -rf $PKGPATH/gui/$KEYWORD/var/modules/g2_import

	mv $PKGPATH/gui/$KEYWORD/var/database-new.php $PKGPATH/gui/$KEYWORD/var/database.php
fi

# move /usr/local/zy-pkgs/backup/gallery/modules, /themes to /usr/local/zy-pkgs/gui/gallery/wp-content/modules, /themes
if `test -d $PKGPATH/backup/$KEYWORD/modules` && [ -f $PKGPATH/mysql/var/$KEYWORD/galleryVersion ]; then
	mv $PKGPATH/gui/$KEYWORD/modules $PKGPATH/gui/$KEYWORD/modules.bak
	mv $PKGPATH/backup/$KEYWORD/modules $PKGPATH/gui/$KEYWORD/modules
	if [ $? -ne 0 ] ; then
		mv $PKGPATH/gui/$KEYWORD/modules.bak $PKGPATH/gui/$KEYWORD/modules
	else
		cp -a $PKGPATH/gui/$KEYWORD/modules.bak/$KEYWORD/helpers/gallery.php $PKGPATH/gui/$KEYWORD/modules/$KEYWORD/helpers/
		rm -rf $PKGPATH/gui/$KEYWORD/modules.bak
	fi
fi

if `test -d $PKGPATH/backup/$KEYWORD/themes` && [ -f $PKGPATH/mysql/var/$KEYWORD/galleryVersion ]; then
	mv $PKGPATH/gui/$KEYWORD/themes $PKGPATH/gui/$KEYWORD/themes.bak
	mv $PKGPATH/backup/$KEYWORD/themes $PKGPATH/gui/$KEYWORD/themes
	if [ $? -ne 0 ] ; then
		mv $PKGPATH/gui/$KEYWORD/themes.bak $PKGPATH/gui/$KEYWORD/themes
	else
		rm -rf $PKGPATH/gui/$KEYWORD/themes.bak
	fi
fi

#inorder to keep files in var,it will move /i-data/md0/admin/gallery/uploads
if `! test -d $ADMINPATH/$KEYWORD/uploads`; then
	mkdir $ADMINPATH/$KEYWORD
	mkdir $ADMINPATH/$KEYWORD/uploads
	mv $PKGPATH/gui/$KEYWORD/var/* $ADMINPATH/$KEYWORD/uploads
else
	if [ ! -f $PKGPATH/mysql/var/$KEYWORD/galleryVersion ] || [ ! -f $ADMINPATH/$KEYWORD/uploads/database.php ]; then
		#change from gallery2 to gallery3
		rm -rf $ADMINPATH/$KEYWORD/uploads/*
		mv $PKGPATH/gui/$KEYWORD/var/* $ADMINPATH/$KEYWORD/uploads
	else
		rm -rf $PKGPATH/gui/$KEYWORD/var/*
	fi
fi

if [ -f $PKGPATH/mysql/var/$KEYWORD/galleryVersion ]; then
	rm -rf $PKGPATH/mysql/var/gallery3
else
	#change from gallery2 to gallery3
	rm -rf $PKGPATH/mysql/var/$KEYWORD
	mv $PKGPATH/mysql/var/gallery3 $PKGPATH/mysql/var/$KEYWORD
fi

mkdir $ADMINPATH/$KEYWORD/modules
mkdir $ADMINPATH/$KEYWORD/themes

mount --bind $PKGPATH/gui/$KEYWORD/modules $ADMINPATH/$KEYWORD/modules
mount --bind $PKGPATH/gui/$KEYWORD/themes $ADMINPATH/$KEYWORD/themes
mount --bind $ADMINPATH/$KEYWORD/uploads $PKGPATH/gui/$KEYWORD/var

if [ -d /usr/local/apache/htdocs/zyxel/ ]; then 
	mount --bind $ADMINPATH/$KEYWORD/uploads /usr/local/apache/htdocs/zyxel/pkg/$KEYWORD/var/
else
	mount --bind $ADMINPATH/$KEYWORD/uploads /usr/local/apache/htdocs/adv,/pkg/$KEYWORD/var/
fi

$MYSQLPATH/mysqlcheck -uzypackage -p1234 --auto-repair --check --optimize --all-databases

$PKGPATH/etc/init.d/gallery disable
