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

# 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

# Set user-specified database name to install script
/bin/sed -i "s,__PHPBB_DATABASE__,$pkgwizard_db_name," /var/packages/phpBB/target/phpBB3/install/install_install.php
echo "x_dbname_x=$pkgwizard_db_name" > /var/packages/phpBB/etc/phpbb.config.syno

# Set website root
rm -rf /var/services/web/phpbb
mv /var/packages/phpBB/target/phpBB3 /var/services/web/phpbb
chown -R 1023:1023 /var/services/web/phpbb

# 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/phpBB/conf
cat > /var/packages/phpBB/conf/PKG_DEPS  << EOF1
[MariaDB]
dsm_min_ver=5.0-4300
EOF1

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

# Check existence of database and create if not exist
pkgwizard_mysql_password=`echo $pkgwizard_mysql_password | sed 's/"/\\"/gp'`
$MYSQL -u root --password="$pkgwizard_mysql_password" -e "SHOW DATABASES" | grep ^$pkgwizard_db_name$
[ $? -eq 0 ] && DB_EXIST="yes" || DB_EXIST="no"
$MYSQL -u root --password="$pkgwizard_mysql_password" -e "CREATE DATABASE IF NOT EXISTS \`$pkgwizard_db_name\` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci"
if [ $? -ne 0 ]; then
	if [ -z "$SYNOPKG_DSM_LANGUAGE" ]; then
		echo "Can't create database '$pkgwizard_db_name'." > $SYNOPKG_TEMP_LOGFILE
		exit 1
	fi
	case $SYNOPKG_DSM_LANGUAGE in
				chs)
			echo "创建数据库失败。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		cht)
			echo "資料庫建立失敗。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		csy)
			echo "Databáze nebyla vytvořena." > $SYNOPKG_TEMP_LOGFILE 
		;;
		dan)
			echo "Datebasen kunne ikke oprettes." > $SYNOPKG_TEMP_LOGFILE 
		;;
		enu)
			echo "Failed to create database." > $SYNOPKG_TEMP_LOGFILE 
		;;
		fre)
			echo "Échec de création de la base de données." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ger)
			echo "Fehler beim Erstellen der Datenbank." > $SYNOPKG_TEMP_LOGFILE 
		;;
		hun)
			echo "Adatbázis létrehozása sikertelen." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ita)
			echo "Impossibile creare il database." > $SYNOPKG_TEMP_LOGFILE 
		;;
		jpn)
			echo "データベースの作成に失敗しました。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		krn)
			echo "데이터베이스 생성 실패." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nld)
			echo "Kan database niet aanmaken." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nor)
			echo "Kan ikke opprette database." > $SYNOPKG_TEMP_LOGFILE 
		;;
		plk)
			echo "Nie udało się utworzyć bazy danych." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptb)
			echo "Falha ao criar banco de dados." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptg)
			echo "Não foi possível criar base de dados." > $SYNOPKG_TEMP_LOGFILE 
		;;
		rus)
			echo "Не удалось создать базу данных." > $SYNOPKG_TEMP_LOGFILE 
		;;
		spn)
			echo "No se pudo crear la base de datos." > $SYNOPKG_TEMP_LOGFILE 
		;;
		sve)
			echo "Misslyckades med att skapa databas." > $SYNOPKG_TEMP_LOGFILE 
		;;
		trk)
			echo "Veritabanı oluşturma başarısız." > $SYNOPKG_TEMP_LOGFILE 
		;;
		*)
			echo "Can't create database." > $SYNOPKG_TEMP_LOGFILE 
		;;
	esac
	exit 1
fi
[ "x$DB_EXIST" = "xno" ] && exit 0  # Exit if DB is newly created

# Detect data of pre-installation and try to move it back if same version and database name
[ -s /var/packages/.phpbb.conf ] || exit 0
TEMP_PATH=`/bin/get_key_value /var/packages/.phpbb.conf path`
[ -s "$TEMP_PATH/phpBB3/config.php" ] || exit 0
set -o pipefail
DB_NAME=`grep '$dbname' $TEMP_PATH/phpBB3/config.php | cut -d"'" -f2`
Ret=$?
set +o pipefail
if [ $Ret -eq 0 -a "$DB_NAME" = "$pkgwizard_db_name" ]; then
	cp -rf $TEMP_PATH/phpBB3/* /var/services/web/phpbb/
	sed -i "s/\$dbpasswd.*$/\$dbpasswd = '$pkgwizard_mysql_password';/" /var/services/web/phpbb/config.php
	chown -R 1023:1023 /var/services/web/phpbb
	rm -rf $TEMP_PATH/phpBB3 /var/packages/.phpbb.conf
fi

exit 0
