#!/bin/sh -e

pkg=$(cat "$__object/parameter/from-package")
servicedir=$(cat "$__object/parameter/servicedir")

__package "$pkg"
__directory "$servicedir" --mode 700

os=$(cat "$__global/explorer/os")
init=$(cat "$__global/explorer/init")

require=""
case $os in
	freebsd)
		# TODO change to __start_on_boot once it supports freebsd
		__config_file /etc/rc.conf.d/svscan --source - <<-EOT
			svscan_enable="YES"
			svscan_servicedir="$servicedir"
		EOT
		require="$require __package/$pkg __directory/$servicedir __config_file/etc/rc.conf.d/svscan" \
		__process svscan --name ".*/svscan $servicedir" --start 'service svscan start'
	;;
	*)
		case $init in
			init)
				if [ -f "$__object/parameter/install-init-script" ]; then		
					__config_file /etc/init.d/svscan --mode 755 --source "$__type/files/init.d-svscan"
					REQUIREEXTRA="__config_file/etc/init.d/svscan"
				fi
				require="$require $REQUIREEXTRA" __start_on_boot svscan
				require="$require __package/$pkg __directory/$servicedir __start_on_boot/svscan" \
				__process svscan --name ".*/svscan $servicedir" --start 'service svscan start'
			;;
			*)
				echo "Your init system ($init) is not supported by this type. Submit a patch at github.com/ungleich/cdist!"
				exit 1
			;;
		esac
	;;
esac
