#!/bin/sh
# Copyright (c) 2000-2012 Synology Inc. All rights reserved.


PKG_DIR="mediawiki-1.19.0"

# Get DSM Version & Set MYSQL
[ -f "/etc.defaults/VERSION" ] || exit 1
DSM_VERSION=`grep ^majorversion= /etc.defaults/VERSION | cut -d'"' -f2`
[ -z "$DSM_VERSION" ] && exit 1

if [ "$DSM_VERSION" -eq "4" ]; then
	MYSQL="/usr/syno/mysql/bin/mysql"
else
	MYSQL="/usr/bin/mysql"
fi

rm -rf /var/services/web/MediaWiki
mv /var/packages/MediaWiki/target/$PKG_DIR /var/services/web/MediaWiki
chown -R 1023:1023 /var/services/web/MediaWiki 

# DSM 4 use different config
if [ "$DSM_VERSION" -eq "4" ]; then
	/usr/syno/etc/rc.d/S97apache-user.sh restart > /dev/null 2>&1
else
	initctl restart php-fpm > /dev/null 2>&1
fi

# Create conf folder and write conf/PKG_DEPS for MariaDB
mkdir -p /var/packages/MediaWiki/conf
cat > /var/packages/MediaWiki/conf/PKG_DEPS << EOF
[MariaDB]
dsm_min_ver=5.0-4300
EOF

[ "$SYNOPKG_PKG_STATUS" = "UPGRADE" ] && exit 0

# Get path of data of previous installation
[ -f /var/packages/.mediawiki.conf ] || exit 0
TEMP_PATH=`/bin/get_key_value /var/packages/.mediawiki.conf path`

# Get DB name and password of previous installation
[ -f $TEMP_PATH/$PKG_DIR/LocalSettings.php ] || exit 0
DB_NAME=`grep '^\$wgDBname ' $TEMP_PATH/$PKG_DIR/LocalSettings.php | cut -d'"' -f2`
DB_PASSWORD=`grep '^\$wgDBpassword ' $TEMP_PATH/$PKG_DIR/LocalSettings.php | cut -d'"' -f2`

# Recover data of previous installation if DB exists
# FIXME How about user has changed password?
$MYSQL -u root --password="$DB_PASSWORD" -e "SHOW DATABASES" | grep ^$DB_NAME$
if [ $? -eq 0 ]; then
	cp -rf $TEMP_PATH/$PKG_DIR/* /var/services/web/MediaWiki/
	chown -R 1023:1023 /var/services/web/MediaWiki
	rm -rf $TEMP_PATH/$PKG_DIR /var/packages/.mediawiki.conf
fi

exit 0
