#!/bin/sh -e

SYSCONFDIR='/etc/httpd2/conf'
SBINDIR='/usr/sbin'

SetVar()
{
	local s n f vn p
	p="$1"
	shift
	s="$@"
	s=`echo "$s" | \
		sed -ne '/^[[:space:]]*[0-9a-zA-Z._-]\{1,\}\(=\|[[:space:]]\{1,\}\)\([Yy][Ee][Ss]\|[Nn][Oo]\)\([[:space:]].*\|\)$/s/^[[:space:]]*\([0-9a-zA-Z._-]\{1,\}\)\(=\|[[:space:]]\{1,\}\)\([Yy][Ee][Ss]\|[Nn][Oo]\)\([[:space:]].*\|\)$/\1 \3/p'`
	if [ "x$s" == "x" ]; then
		continue
	fi
	f=`echo $s | cut -d" " -f2`
	n=`echo $s | cut -d" " -f1`
	vn=`echo "$n" | sed -e 's/[-.]/_/g'`
	eval ${p}_FILE_$vn=$n
	eval ${p}_$vn=$f
}

SetVars()
{
	local c s d p
	d="$1"
	p="$2"
	for c in $SYSCONFDIR/$d-start.d/*.conf; do
		while read s; do
			SetVar "$p" "$s"
		done < "$c"
		SetVar "$p" "$s"
	done
}

SetLinks()
{
	local c s n f vn d p e
	d="$1"
	p="$2"
	e="$3"
	r="$4"
	for vn in `ls $SYSCONFDIR/$d-available/*.$r | \
			sed -e "s,$SYSCONFDIR/$d-available/\(.*\).$r,\1,g" -e "s/[-.]/_/g"`; do
		local pvn pfvn
		pvn=${p}_$vn
		pfvn=${p}_FILE_$vn
		eval f=\$$pvn
		eval n=\$$pfvn
		case "x$f" in
			x[yY][eE][sS])
				$SBINDIR/a2en$e $n >/dev/null || :
				;;
			x[nN][oO])
				$SBINDIR/a2dis$e $n >/dev/null || :
				;;
		esac
	done
}

SetVars ports PORT
SetLinks ports PORT port conf
SetVars extra EXTRA
SetLinks extra EXTRA extra conf
SetVars sites SITE
SetLinks sites SITE site conf
SetVars mods MOD
SetLinks mods MOD mod load

