#!/bin/sh
#
# Enable and disable systemd services.
#
# Arguments:	$ACTION = [run/targets]
#		$TARGET	= [post-install/pre-remove]
#		$PKGNAME
#		$VERSION
#		$UPDATE = [yes/no]
#
ACTION="$1"
TARGET="$2"
PKGNAME="$3"
VERSION="$4"
UPDATE="$5"

export PATH="$PATH:/usr/local/bin"

case "$ACTION" in
targets)
	echo "post-install pre-remove"
	;;
run)
	[ ! -x bin/systemctl ] && exit 0
	[ -z "${systemd_services}" ] && exit 1

	if [ -e sys/fs/cgroups/systemd ]; then
		systemd_booted=yes
	fi

	if [ "$TARGET" = "pre-remove" ]; then
		if [ "$UPDATE" = "no" ]; then
			# package is being removed.
			# disable and stop the units.
			systemctl --no-reload disable ${systemd_services} >/dev/null 2>&1 || :
			systemctl stop ${systemd_services} >/dev/null 2>&1 || :
		fi
	elif [ "$TARGET" = "post-install" ]; then
		if [ "$UPDATE" = "no" ]; then
			# package is being installed.
			# enable (but don't start) the units by default.
			systemctl enable ${systemd_services} >/dev/null 2>&1 || :
			if [ "$systemd_booted" ]; then
				# reload systemd if running.
				systemctl daemon-reload >/dev/null 2>&1 || :
			fi
		else
			# package is being updated.
			if [ "$system_booted" ]; then
				# reload systemd if running.
				systemctl daemon-reload >/dev/null 2>&1 || :
			fi
			# try restarting package services.
			systemctl try-restart ${systemd_services} >/dev/null 2>&1 || :
		fi
	else
		exit 1
	fi

	;;
*)
	exit 1
	;;
esac

exit 0
