#!/bin/bash

# Install controller base requiered packages

set -e
set -o xtrace

if [ "$(dib-init-system)" = "upstart" ] ; then
    install $(dirname $0)/mysql-set-server-id.upstart /etc/init/mysql-set-server-id.conf
else
    echo WARNING: server-id will not be set on systems that boot this image!
fi
install-packages sysstat mytop percona-toolkit mysql-server-5.5 mysql-client-5.5 python-mysqldb
# Templates write the configs into /mnt/state. However, MySQL makes it very
# difficult not to use this as the directory for configs.
rm -rf /etc/mysql
ln -s /mnt/state/etc/mysql /etc/mysql
if [ -e /etc/apparmor.d/usr.sbin.mysqld ] ; then
    sed -i -e 's,/var/lib/mysql/,/mnt/state/var/lib/mysql/,g' /etc/apparmor.d/usr.sbin.mysqld
    sed -i -e 's,/var/log/mysql/,/mnt/state/var/log/mysql/,g' /etc/apparmor.d/usr.sbin.mysqld
    sed -i -e 's,/etc/mysql/,/mnt/state/etc/mysql/,g' /etc/apparmor.d/usr.sbin.mysqld
fi
# Fedora/RHEL install /etc/my.cnf but we do not want any unmanaged configs
rm -f /etc/my.cnf
register-state-path /var/lib/mysql
# We need to setup the directory with appropriate permissions and then
# the first time we boot a particular state partition we rsync this in.
[ -d /var/log/mysql ] || install -d -o root -g mysql -m 0775 /var/log/mysql
register-state-path /var/log/mysql

if [ "$DIB_INIT_SYSTEM" == "systemd" ]; then
    # The service is called mariadb on Fedora 20. While there is a symlink from
    # mysqld.service -> mariadb.service to maintain backwards compatibility,
    # there's a bug with systemd and symlinked service files:
    # https://bugzilla.redhat.com/show_bug.cgi?id=1014311
    systemctl enable mysqld.service || systemctl enable mariadb.service
fi

DISTRO=`lsb_release -si` || true
if [[ "RedHatEnterpriseServer CentOS Fedora" =~ "$DISTRO" ]]; then
  # mysql clients on redhat expect the socket at /var/lib/mysql/mysql.sock
  mkdir -p /var/lib/mysql
  ln -s /var/run/mysqld/mysqld.sock /var/lib/mysql/mysql.sock
fi
