#!/bin/sh
#
# Registers or unregisters OpenRC services into the specified
# runlevel.
#
# Arguments:	$1 = action [run/targets]
#		$2 = target [post-install/pre-remove]
#		$3 = pkgname
#
initdir=etc/init.d

case "$1" in
targets)
	echo "post-install pre-remove"
	;;
run)
	[ ! -x sbin/rc-update ] && exit 0
	[ ! -x sbin/rc-service ] && exit 0
	[ -z "$openrc_services" ] && exit 1

	target=$2
	if [ "$target" = "pre-remove" ]; then
		text="Unr"
		rcupdate_args="del"
	elif [ "$target" = "post-install" ]; then
		text="R"
		rcupdate_args="add"
	else
		exit 1
	fi

	[ ! -f etc/fstab ] && touch etc/fstab

	set -- ${openrc_services}
	while [ $# -gt 0 ]; do
		if sbin/rc-service -e ${1}; then
			# Stop the service if it's running.
			if [ "$target" = "pre-remove" -a -f $initdir/$1 ]; then
				$initdir/$1 -q status
				if [ $? -eq 0 ]; then
					$initdir/$1 stop
				fi
			fi
			# (Un)register the service.
			echo "${text}egistering ${1} OpenRC service..."
			sbin/rc-update ${rcupdate_args} ${1} ${2}
		fi
		shift; shift;
	done
	sbin/rc-update -u

	;;
*)
	exit 1
	;;
esac

exit 0
