#!/bin/bash

INITSYS=`readlink -f /proc/1/exe`
if [ "$INITSYS" != "/lib/systemd/systemd" -a "$INITSYS" != "/usr/lib/systemd/systemd" ]; then
	echo "ERROR: This chr package supports only systemd."
	exit 0
fi

# create mysql user
getent group mysql >/dev/null 2>&1 ||
	addgroup --system mysql
getent passwd mysql >/dev/null 2>&1 ||
	adduser --system --home /nonexistent --no-create-home --disabled-password --shell /bin/false --ingroup mysql mysql

echo "Checking systemd notify,log socket placeholders"
/usr/lib/3gsystools/chr_placeholder_check /chroot/admin/run /systemd/notify file
/usr/lib/3gsystools/chr_placeholder_check /chroot/admin/run /systemd/journal/dev-log file

# restarting syslog
systemctl restart rsyslog

# creating link from /dev/log to systemd log socket
if ! [ -e /chroot/admin/dev/log ]; then
	ln -s ../run/systemd/journal/dev-log /chroot/admin/dev/log
fi

echo "Checking admin mysql data folders"
test -e /srv/mysql-admin || install -m 755 -o mysql -g mysql -d /srv/mysql-admin
test -e /chroot/admin/var/lib/mysql || install -m 755 -o mysql -g mysql -d /chroot/admin/var/lib/mysql

echo "Checking admin mysql log folders"
/usr/lib/3gsystools/chr_placeholder_check /srv /log dir
test -e /srv/log/mysql-admin || install -m 755 -o mysql -g mysql -d /srv/log/mysql-admin
test -e /chroot/admin/var/log/mysql || install -m 755 -o mysql -g mysql -d /chroot/admin/var/log/mysql

echo "Checking admin mysql socket"
test -e /chroot/admin/run/mysqld || install -m 755 -o mysql -g root -d /chroot/admin/run/mysqld
test -e /run/mysqld-admin || install -m 755 -o mysql -g root -d /run/mysqld-admin

#if command -v systemd-tmpfiles >/dev/null 2>&1; then
#	systemd-tmpfiles --create /usr/lib/tmpfiles.d/chr-admin.conf || true
#fi

echo "Checking mysql-root socket dir"
/usr/lib/3gsystools/chr_placeholder_check /chroot/admin/run /mysqld-root dir

echo "Checking apache log folders"
/usr/lib/3gsystools/chr_placeholder_check /srv /log dir
/usr/lib/3gsystools/chr_placeholder_check /srv /log/apache2-admin dir
/usr/lib/3gsystools/chr_placeholder_check /srv /log/apache2-admin/main dir
test -e /srv/log/apache2-admin/php || install -m 755 -o www-data -g www-data -d /srv/log/apache2-admin/php
test -e /srv/log/apache2-admin/phpmail || install -m 755 -o www-data -g www-data -d /srv/log/apache2-admin/phpmail
test -e /srv/log/apache2-admin/horde || install -m 755 -o www-data -g www-data -d /srv/log/apache2-admin/horde
test -e /srv/log/apache2-admin/roundcube || install -m 755 -o www-data -g www-data -d /srv/log/apache2-admin/roundcube

/usr/lib/3gsystools/chr_placeholder_check /srv /log/apache2-admin/daily dir
/usr/lib/3gsystools/chr_placeholder_check /srv /log/apache2-admin/daily/main dir
/usr/lib/3gsystools/chr_placeholder_check /srv /log/apache2-admin/daily/php dir
/usr/lib/3gsystools/chr_placeholder_check /srv /log/apache2-admin/daily/phpmail dir
/usr/lib/3gsystools/chr_placeholder_check /srv /log/apache2-admin/daily/horde dir
/usr/lib/3gsystools/chr_placeholder_check /srv /log/apache2-admin/daily/roundcube dir

/usr/lib/3gsystools/chr_placeholder_check /chroot/admin/var/log /apache2 dir

echo "Checking web folder"
/usr/lib/3gsystools/chr_placeholder_check /chroot/admin /web dir

echo "Checking ssl folder"
#/usr/lib/3gsystools/chr_placeholder_check /etc/ssl /sys dir
/usr/lib/3gsystools/chr_placeholder_check /chroot/admin/etc/ssl /sys dir

echo "Updating fstab"
/usr/local/sbin/fstab-chr

# delete deprecated units
[ -h /etc/systemd/system/multi-user.target.wants/apache2-admin.service ] && rm /etc/systemd/system/multi-user.target.wants/apache2-admin.service
[ -h /etc/systemd/system/multi-user.target.wants/mariadb-admin.service ] && rm /etc/systemd/system/multi-user.target.wants/mariadb-admin.service
[ -h /etc/systemd/system/multi-user.target.wants/mysqld-admin.service ] && rm /etc/systemd/system/multi-user.target.wants/mysqld-admin.service
[ -h /etc/systemd/system/multi-user.target.wants/mysql-admin.service ] && rm /etc/systemd/system/multi-user.target.wants/mysql-admin.service

if [ -h /etc/systemd/system/mysqld-admin.service ]; then
	sdst=`readlink /etc/systemd/system/mysqld-admin.service`
	if [ "x${sdst}" != "x/lib/systemd/system/mariadb-admin.service" ]; then
		rm /etc/systemd/system/mysqld-admin.service
	fi
fi

if [ -h /etc/systemd/system/mysql-admin.service ]; then
	sdst=`readlink /etc/systemd/system/mysql-admin.service`
	if [ "x${sdst}" != "x/lib/systemd/system/mariadb-admin.service" ]; then
		rm /etc/systemd/system/mysql-admin.service
	fi
fi

# activating systemd units
systemctl daemon-reload


# Enabling systemd units

SYSTEMD_UNITS="
	chr-admin.target
	chroot-admin-run-systemd-notify.mount
	chroot-admin-tmp.mount
	chroot-admin-run-systemd-journal-dev\\x2dlog.mount
	chroot-admin-run-mysqld.mount
	chroot-admin-run-mysqld\\x2droot.mount
	chroot-admin-etc-ssl-sys.mount
	chroot-admin-var-log-apache2.mount
	chroot-admin-var-lib-mysql.mount
	chroot-admin-var-log-mysql.mount
	chroot-admin-web-sys-admin-stat.mount
	mariadb-admin.service
	apache2-admin.service
"

for systemd_unit in $SYSTEMD_UNITS; do

	if [ -z "$2" ]; then
		# First install
		deb-systemd-helper enable "${systemd_unit}" >/dev/null || true
	else
		# Upgrade
		if deb-systemd-helper --quiet was-enabled "${systemd_unit}"; then
			deb-systemd-helper enable "${systemd_unit}" >/dev/null || true
		else
			deb-systemd-helper update-state "${systemd_unit}" >/dev/null || true
		fi
	fi

done


exit 0
