#!/bin/sh -e

SYSCONFDIR='/etc/httpd2/conf'

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
		if [ ! -f "$c" ]; then
			break
		fi
		while read s; do
			SetVar "$p" "$s"
		done < "$c"
		SetVar "$p" "$s"
	done
}

PrintConf()
{
	local c s n f vn d p e
	d="$1"
	p="$2"
	r="$3"
	for vn in `ls -1 --quoting-style=shell $SYSCONFDIR/$d-available/*.$r 2>/dev/null | \
			sed -e "s,$SYSCONFDIR/$d-available/\(.*\).$r,\1,g" -e "s/[-.]/_/g"`; do
		local pvn pfvn rez
		pvn=${p}_$vn
		pfvn=${p}_FILE_$vn
		eval f=\$$pvn
		eval n=\$$pfvn
		case "x$f" in
			x[yY][eE][sS])
				rez="yes"
				;;
			x[nN][oO])
				rez="no"
				;;
			*)
				continue
				;;
		esac
		echo "$d $n $rez"
	done
}

case "x$1" in
	xmods)
		SetVars mods MOD
		PrintConf mods MOD load
		;;
	xports)
		SetVars ports PORT
		PrintConf ports PORT conf
		;;
	xsites)
		SetVars sites SITE
		PrintConf sites SITE conf
		;;
	xextra)
		SetVars extra EXTRA
		PrintConf extra EXTRA conf
		;;
	*)
		SetVars ports PORT
		PrintConf ports PORT conf
		SetVars extra EXTRA
		PrintConf extra EXTRA conf
		SetVars sites SITE
		PrintConf sites SITE conf
		SetVars mods MOD
		PrintConf mods MOD load
		;;
esac
