#!/bin/bash

# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

get_pcount () {
	PSCOUNT=$(ps -ef | grep "/usr/sbin/mysqld" | wc -l)
	echo "${PSCOUNT}"
}

server_stop () {
	PSCOUNT=$(get_pcount)
	COUNT=0
	while :; do
		COUNT=$(( COUNT+1 ))
		echo -n .
		if [ "${PSCOUNT}" -eq 1 ];
		then
			echo
			break
		fi
		if [ "${COUNT}" -gt 15 ];
		then
			echo
			return 1
		fi
		PSCOUNT=$(get_pcount)
		sleep 1
	done
	return 0
}

case "$1" in
	install)

	if [ -z "$2" ];
	then

		set -e

		if [ -x "/etc/init.d/mysql" ];
		then
			invoke-rc.d mysql stop || exit $?
			server_stop
		fi

		MYSQLDATA=/var/lib/mysql
		MYSQLFILES=/var/lib/mysql-files
		MYSQLKEYRING=/var/lib/mysql-keyring
		MYSQLLOG=/var/log/mysql
		MYSQLRUN=/var/run/mysqld

		if ! getent group mysql >/dev/null;
		then
			addgroup --system mysql >/dev/null
		fi

		if ! getent passwd mysql >/dev/null;
		then
			adduser --ingroup mysql --system --disabled-login --no-create-home --home ${MYSQLDATA} --shell /bin/false --gecos "MySQL Server" mysql >/dev/null
		fi

		if [ ! -d ${MYSQLDATA} -a ! -L ${MYSQLDATA} ];
		then
			mkdir ${MYSQLDATA}
			chown mysql:mysql ${MYSQLDATA}
			chmod 750 ${MYSQLDATA}
		fi

		if [ ! -d ${MYSQLFILES} -a ! -L ${MYSQLFILES} ];
		then
			mkdir ${MYSQLFILES}
			chown mysql:mysql ${MYSQLFILES}
			chmod 770 ${MYSQLFILES}
		fi

		if [ ! -d ${MYSQLKEYRING} -a ! -L ${MYSQLKEYRING} ];
		then
			mkdir ${MYSQLKEYRING}
			chown mysql:mysql ${MYSQLKEYRING}
			chmod 750 ${MYSQLKEYRING}
		fi

		if [ ! -d ${MYSQLLOG} -a ! -L ${MYSQLLOG} ];
		then
			mkdir ${MYSQLLOG}
			chown mysql:adm ${MYSQLLOG}
			chmod 750 ${MYSQLLOG}
			touch ${MYSQLLOG}/error.log
			chmod 640 ${MYSQLLOG}/error.log
			chown mysql:adm ${MYSQLLOG}/error.log
		fi

		if [ ! -d ${MYSQLRUN} -a ! -L ${MYSQLRUN} ];
		then
			mkdir ${MYSQLRUN}
		fi
		if [ -d ${MYSQLRUN} ];
		then
			chown mysql:mysql ${MYSQLRUN}
			chmod 755 ${MYSQLRUN}
		fi

		set +e

	fi

	;;

	upgrade)

	set -e

	#DEBHELPER#
	server_stop

	set +e

	;;

	abort-upgrade)

	;;

	*)
        exit 1
        ;;
esac

exit 0
