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

if [ "$SYNOPKG_PKG_STATUS" = "UPGRADE" ]; then
	exit 0
fi

# 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

# Check phpbb's link not exist
if [ -e /var/services/web/phpbb ]; then
	if [ -z "$SYNOPKG_DSM_LANGUAGE" ]; then
		echo "The path of phpbb already exist in web folder, please rename or move it to other place" > $SYNOPKG_TEMP_LOGFILE
		exit 1
	fi
	case $SYNOPKG_DSM_LANGUAGE in
				chs)
			echo "phpBB 文件夹已在您的 Web 文件夹中。请在安装 phpBB 套件之前对其重命名或将其移动到其他位置。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		cht)
			echo "您的 Web 資料夾底下已有名為 phpBB 的資料夾，安裝 phpBB 套件前請重新命名或搬移此資料夾。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		csy)
			echo "Složka phpBB již existuje ve složce Web. Před instalací balíčku phpBB ji nejdříve přejmenujte nebo přesuňte." > $SYNOPKG_TEMP_LOGFILE 
		;;
		dan)
			echo "En phpBB-mappe findes allerede under din Web-mappe. Omdøb den, eller flyt den, før du installerer phpBB-pakken." > $SYNOPKG_TEMP_LOGFILE 
		;;
		enu)
			echo "A phpBB folder already exists under your Web folder. Please rename it or move it before you install the phpBB package." > $SYNOPKG_TEMP_LOGFILE 
		;;
		fre)
			echo "Un dossier phpBB existe déjà dans votre dossier Web. Veuillez le renommer ou le déplacer avant d'installer le paquet phpBB." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ger)
			echo "Ein phpBB Ordner existiert bereits in Ihrem Web-Ordner. Bitte geben Sie ihm einen anderen Namen oder verschieben Sie ihn, bevor Sie das phpBB Paket installieren." > $SYNOPKG_TEMP_LOGFILE 
		;;
		hun)
			echo "Egy phpBB mappa már létezik a Web mappában. Kérjük, hogy a phpBB csomag telepítése előtt nevezze át, vagy távolítsa el onnan." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ita)
			echo "Esiste già una cartella phpBB nella cartella web. Rinominarla o rimuoverla prima di installare il pacchetto phpBB." > $SYNOPKG_TEMP_LOGFILE 
		;;
		jpn)
			echo "phpBB フォルダは、Web フォルダの下に既に存在します。phpBB パッケージをインストールする前に、別名を付けるか、移動してください。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		krn)
			echo "웹 폴더 아래에 phpBB 폴더가 이미 있습니다. phpBB 패키지를 설치하기 전에 폴더의 이름을 바꾸거나 이를 이동하십시오." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nld)
			echo "Er bestaat al een phpBB-map onder uw Web-map. Wijzig de naam of verplaats de map voor de installatie van het phpBB-pakket. " > $SYNOPKG_TEMP_LOGFILE 
		;;
		nor)
			echo "Det finnes allerede en phpBB-mappe under din Web-mappe. Du må gi den nytt navn eller flytte den før du installerer phpBB-pakken." > $SYNOPKG_TEMP_LOGFILE 
		;;
		plk)
			echo "Folder phpBB już istnieje w Twoim folderze Web. Zmień jego nazwę lub przenieś go przed instalacją pakietu phpBB." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptb)
			echo "Já existe uma pasta phpBB em sua pasta da Internet. Renomeie-a ou mova-a antes de instalar o pacote phpBB." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptg)
			echo "A pasta phpBB já existe na sua pasta da Internet. Altere o nome ou mova-a antes de instalar o pacote phpBB." > $SYNOPKG_TEMP_LOGFILE 
		;;
		rus)
			echo "Папка phpBB уже существует в папке Web. Переименуйте ее или переместите перед установкой пакета phpBB." > $SYNOPKG_TEMP_LOGFILE 
		;;
		spn)
			echo "Ya existe una carpeta phpBB en su carpeta Web. Cámbiele el nombre o muévala antes de instalar el paquete phpBB." > $SYNOPKG_TEMP_LOGFILE 
		;;
		sve)
			echo "En phpBB-mapp finns redan under din webb-mapp. Byt namn eller flytta den innan du installerar phpBB-paketet." > $SYNOPKG_TEMP_LOGFILE 
		;;
		trk)
			echo "Web klasörünüzün altında zaten bir phpBB klasörü var. phpBB paketini yüklemeden önce lütfen bunu yeniden adlandırın ya da taşıyın." > $SYNOPKG_TEMP_LOGFILE 
		;;
		*)
			echo "The path of phpbb already exist in web folder, please rename or move it to other place" > $SYNOPKG_TEMP_LOGFILE 
		;;
	esac
	exit 1
fi

# Check database name
if [ -z "$pkgwizard_db_name" ]; then
	if [ -z "$SYNOPKG_DSM_LANGUAGE" ]; then
		echo "Please specify database name" > $SYNOPKG_TEMP_LOGFILE
		exit 1
	fi
	case $SYNOPKG_DSM_LANGUAGE in
				chs)
			echo "请指定数据库名称。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		cht)
			echo "請給定資料庫名稱。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		csy)
			echo "Určete název databáze." > $SYNOPKG_TEMP_LOGFILE 
		;;
		dan)
			echo "Angiv databasenavnet." > $SYNOPKG_TEMP_LOGFILE 
		;;
		enu)
			echo "Please specify the database name." > $SYNOPKG_TEMP_LOGFILE 
		;;
		fre)
			echo "Veuillez spécifier nom de la base de données." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ger)
			echo "Bitte geben Sie den Datenbanknamen an." > $SYNOPKG_TEMP_LOGFILE 
		;;
		hun)
			echo "Kérjük, adja meg az adatbázis nevét." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ita)
			echo "Specificare un nome database." > $SYNOPKG_TEMP_LOGFILE 
		;;
		jpn)
			echo "データベース名を指定してください。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		krn)
			echo "데이터베이스 이름을 지정하십시오." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nld)
			echo "Geef de databasenaam op." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nor)
			echo "Vennligst oppgi databasenavnet." > $SYNOPKG_TEMP_LOGFILE 
		;;
		plk)
			echo "Określ nazwę bazy danych." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptb)
			echo "Especifique o nome do banco de dados." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptg)
			echo "Especifique o nome da base de dados." > $SYNOPKG_TEMP_LOGFILE 
		;;
		rus)
			echo "Укажите имя базы данных." > $SYNOPKG_TEMP_LOGFILE 
		;;
		spn)
			echo "Indique el nombre de la base de datos." > $SYNOPKG_TEMP_LOGFILE 
		;;
		sve)
			echo "Ange databasnamnet." > $SYNOPKG_TEMP_LOGFILE 
		;;
		trk)
			echo "Lütfen veritabanı adını belirtin." > $SYNOPKG_TEMP_LOGFILE 
		;;
		*)
			echo "Please specify database name" > $SYNOPKG_TEMP_LOGFILE 
		;;
	esac
	exit 1
fi

# Check database password
pkgwizard_mysql_password=`echo $pkgwizard_mysql_password | sed 's/"/\\"/gp'`
$MYSQL -u root --password="$pkgwizard_mysql_password" -e "exit"
if [ $? -eq 1 ]; then
	if [ -z "$SYNOPKG_DSM_LANGUAGE" ]; then
		echo "Please check your MySQL password" > $SYNOPKG_TEMP_LOGFILE
		exit 1
	fi
	case $SYNOPKG_DSM_LANGUAGE in
				chs)
			echo "请检查您的 MySQL 密码，然后再试一次。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		cht)
			echo "請檢查您的 MySQL 密碼，然後再試一次。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		csy)
			echo "Zkontrolujte heslo MySQL a zkuste to znovu." > $SYNOPKG_TEMP_LOGFILE 
		;;
		dan)
			echo "Kontroller din MySQL-adgangskode, og prøv igen." > $SYNOPKG_TEMP_LOGFILE 
		;;
		enu)
			echo "Please check your MySQL password and try again." > $SYNOPKG_TEMP_LOGFILE 
		;;
		fre)
			echo "Veuillez vérifier votre mot de passe MySQL et réessayer." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ger)
			echo "Prüfen Sie Ihr MySQL-Passwort und versuchen Sie es erneut." > $SYNOPKG_TEMP_LOGFILE 
		;;
		hun)
			echo "Ellenőrizze MySQL–jelszavát, majd próbálja újra." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ita)
			echo "Controllare la password MySQL e riprovare." > $SYNOPKG_TEMP_LOGFILE 
		;;
		jpn)
			echo "MySQL のパスワードを確認してもう一度行ってください。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		krn)
			echo "MySQL 패스워드를 확인하고 다시 시도하십시오." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nld)
			echo "Controleer uw MySQL-wachtwoord en probeer het opnieuw." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nor)
			echo "Vennligst sjekk MySQL-passordet og prøv igjen." > $SYNOPKG_TEMP_LOGFILE 
		;;
		plk)
			echo "Sprawdź swoje hasło MySQL i spróbuj ponownie." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptb)
			echo "Verifique sua senha MySQL e tente novamente." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptg)
			echo "Verifique a sua palavra-passe do MySQL e tente novamente." > $SYNOPKG_TEMP_LOGFILE 
		;;
		rus)
			echo "Проверьте пароль MySQL и повторите попытку." > $SYNOPKG_TEMP_LOGFILE 
		;;
		spn)
			echo "Compruebe su contraseña de MySQL y vuelva a intentarlo." > $SYNOPKG_TEMP_LOGFILE 
		;;
		sve)
			echo "Kontrollera ditt MySQL-lösenord och försök igen." > $SYNOPKG_TEMP_LOGFILE 
		;;
		trk)
			echo "Lütfen MySQL parolanızı kontrol edin ve yeniden deneyin." > $SYNOPKG_TEMP_LOGFILE 
		;;
		*)
			echo "Check your MySQL password" > $SYNOPKG_TEMP_LOGFILE 
		;;
	esac
	exit 1
fi

# Check existence of database
$MYSQL -u root --password="$pkgwizard_mysql_password" -e "SHOW DATABASES" | grep ^$pkgwizard_db_name$
[ $? -eq 0 ] && DB_EXIST="yes" || DB_EXIST="no"

# Check previous installation
if [ -f /var/packages/.phpbb.conf ]; then
	TEMP_PATH=`/bin/get_key_value /var/packages/.phpbb.conf path`
	if [ -s "$TEMP_PATH/phpBB3/config.php" ]; then
		set -o pipefail
		DB_NAME=`grep '$dbname' $TEMP_PATH/phpBB3/config.php | cut -d"'" -f2`
		[ $? -eq 0 -a "$DB_NAME" = $pkgwizard_db_name ] && DB_SAME="yes" || DB_SAME="no"
		set +o pipefail
	else
		DB_SAME="no"
	fi
else
	DB_SAME="no"
fi

# Decide whether to continue
if [ "x$DB_EXIST" = "xyes" -a "x$DB_SAME" = "xno" ]; then
	if [ -z "$SYNOPKG_DSM_LANGUAGE" ]; then
		echo "This database already exists" > $SYNOPKG_TEMP_LOGFILE
		exit 1
	fi
	case $SYNOPKG_DSM_LANGUAGE in
				chs)
			echo "数据库已存在。为避免被 phpBB 安装覆盖，请使用另一个数据库名称。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		cht)
			echo "資料庫已存在。為避免被 phpBB 安裝步驟所覆寫，請使用另一個資料庫名稱。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		csy)
			echo "Databáze již existuje. Aby se zabránilo přepsání instalací databáze phpBB, použijte prosím jiný název databáze. " > $SYNOPKG_TEMP_LOGFILE 
		;;
		dan)
			echo "Databasen findes allerede. For at den ikke skal overskrives af phpBB-installationen skal du bruge et andet databasenavn." > $SYNOPKG_TEMP_LOGFILE 
		;;
		enu)
			echo "Database already exists. To avoid being overwritten by phpBB installation, please use another database name." > $SYNOPKG_TEMP_LOGFILE 
		;;
		fre)
			echo "La base de données existe déjà. Pour éviter qu'elle soit écrasée par l'installation de phpBB, veuillez utilisez un autre nom de base de données." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ger)
			echo "Datenbank ist bereits vorhanden. Bitte verwenden Sie einen anderen Datenbanknamen, um ein Überschreiben der phpBB Installation zu vermeiden." > $SYNOPKG_TEMP_LOGFILE 
		;;
		hun)
			echo "Az adatbázis már létezik. Ha nem akarja, hogy a phpBB telepítése felülírja, használjon másik adatbázisnevet." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ita)
			echo "Il database esiste già. Per evitare la sovrascrittura durante l’installazione di phpBB, utilizzare un altro nome database." > $SYNOPKG_TEMP_LOGFILE 
		;;
		jpn)
			echo "データベースが存在します。phpBB のインストールにより上書きされないように、別のデータベース名を使用してください。" > $SYNOPKG_TEMP_LOGFILE 
		;;
		krn)
			echo "데이터베이스가 이미 있습니다. phpBB 설치가 덮어쓰는 것을 방지하려면 다른 데이터베이스 이름을 사용하십시오." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nld)
			echo "Database bestaat al. Gebruik een andere databasenaam om te vermijden dat deze wordt overschreven door de installatie van phpBB." > $SYNOPKG_TEMP_LOGFILE 
		;;
		nor)
			echo "Databasen eksisterer allerede. Bruk et annet databasenavn for å unngå å bli overskrevet av phpBB-installasjonen." > $SYNOPKG_TEMP_LOGFILE 
		;;
		plk)
			echo "Baza danych już istnieje. Aby uniknąć jej zastąpienia podczas instalowania aplikacji phpBB, użyj innej nazwy bazy danych." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptb)
			echo "O banco de dados já existe. Para evitar ser sobrescrito pela instalação do phpBB, use outro nome para o banco de dados." > $SYNOPKG_TEMP_LOGFILE 
		;;
		ptg)
			echo "Base de dados já existe. Para evitar substituir a instalação de phpBB, use outro nome para a base de dados." > $SYNOPKG_TEMP_LOGFILE 
		;;
		rus)
			echo "База данных уже существует. Чтобы база данных не была перезаписана при установке phpBB, используйте другое имя для базы данных" > $SYNOPKG_TEMP_LOGFILE 
		;;
		spn)
			echo "La base de datos ya existe. Para evitar que se sobrescriba al instalar phpBB, utilice otro nombre de base de datos." > $SYNOPKG_TEMP_LOGFILE 
		;;
		sve)
			echo "Databasen existerar redan. För att undvika att den skrivs över av phpBB-installationen, använd ett annat databasnamn." > $SYNOPKG_TEMP_LOGFILE 
		;;
		trk)
			echo "Veritabanı zaten mevcut. phpBB kurulumu tarafından üzerine yazılmaması için, lütfen başka bir veritabanı kullanın." > $SYNOPKG_TEMP_LOGFILE 
		;;
		*)
			echo "This database already exists" > $SYNOPKG_TEMP_LOGFILE 
		;;
	esac
	exit 1
fi

exit 0
