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

PACKAGE_NAME="MariaDB"
RUN_MYSQL_KEY="runmysql"
SYNOINFO_LOCK="/tmp/lock/lock_synoinfo"
ETC_FILES="mysql/my.cnf logrotate.d/mysql php/conf.d/mysql.ini"
LIB_FILES="mysql libmysqlclient.so libmysqlclient.so.18 libmysqlclient_r.so libmysqlclient_r.so.18 libmysqlclient_r.so.18.0.0 libmysqld.so libmysqld.so.18 php/modules/mysql.so php/modules/mysqli.so php/modules/mysqlnd.so php/modules/pdo_mysql.so"
USR_BIN_FILES="myisam_ftdump myisamchk myisamlog myisampack aria_ftdump aria_chk aria_read_log aria_dump_log aria_pack mysql mysqltest mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysql_plugin mysqlbinlog mysqladmin mysqlslap my_print_defaults perror resolveip replace innochecksum resolve_stack_dump mysql_waitpid mysqlbug mysql_install_db msql2mysql mysql_fix_extensions mysql_setpermission mysql_zap mysqlaccess mysql_convert_table_format mysql_find_rows mysqlhotcopy mysqldumpslow mysqld_multi mysqld_safe mysqld mysql_tzinfo_to_sql"

CHECK_AND_LINK_FILE()
{
	LINK=$1
	LINK_TARGET="`realpath ${SYNOPKG_PKGDEST}${LINK}`"
	LINK_BASE=`dirname $1`

	if [ ! -d "$LINK_BASE" ]; then
		mkdir -p $LINK_BASE
	fi
	if [ ! -e "$LINK" ]; then
		ln -sf $LINK_TARGET $LINK
	fi
}

DO_LINK()
{
	for file in $ETC_FILES
	do
		CHECK_AND_LINK_FILE "/etc/$file"
	done

	for file in $USR_BIN_FILES
	do
		CHECK_AND_LINK_FILE "/usr/bin/$file"
	done

	for file in $LIB_FILES
	do
		CHECK_AND_LINK_FILE "/lib/$file"
	done

	CHECK_AND_LINK_FILE "/usr/share/mysql"
	mkdir -p /usr/syno/mysql
	ln -s /var/packages/MariaDB/target/usr/bin /usr/syno/mysql/bin
}

CHECK_AND_REMOVE()
{
	[ -L $1 ] && rm $1
}

DO_REMOVE()
{
	for file in $ETC_FILES
	do
		CHECK_AND_REMOVE "/etc/$file"
	done

	for file in $USR_BIN_FILES
	do
		CHECK_AND_REMOVE "/usr/bin/$file"
	done

	for file in $LIB_FILES
	do
		CHECK_AND_REMOVE "/lib/$file"
	done

	CHECK_AND_REMOVE "/usr/share/mysql"
	CHECK_AND_REMOVE /usr/syno/mysql/bin
	rmdir /usr/syno/mysql
}

SetSynoInfo()
{
	if [ $# -ne 2 ]; then
		logger -p 0 "MariaDB: SetSynoInfo: Parameter should be 2"
		return 1
	fi
	local key=$1
	local value=$2

	(
	if flock -x 8; then
		if grep -q $key /etc/synoinfo.conf; then
			sed -i "s|^${key}=.*$|${key}=\"${value}\"|" /etc/synoinfo.conf
		else
			echo "${key}=\"${value}\"" >> /etc/synoinfo.conf
		fi
		flock -u 8
	fi
	)8> ${SYNOINFO_LOCK}
}

