#!/bin/bash

ALTERATOR_SCONF="900-alterator.conf"
VHOSTS_PATH="/var/www/vhosts"
LOG_PATH="/var/log/httpd2"

_()
{
LANG=${in_language%%;*}.utf8 gettext "alterator-apache2" "$1"
}

#turn off auto expansion
set -f

. /usr/share/alterator/build/backend3.sh
. /usr/share/alterator/build/apache2.sh

on_message()
{
	. /usr/share/alterator/build/backend-apache2.sh

	######
	# NEW
	#

	case "$level" in
		0)
			echo '('
			case "$in_action" in
				constraints)
					printf 'name (label "%s")\n' "`_ "Group of configs"`"
					printf 'summary (label "%s")\n' "`_ "Summary"`"
					;;
				list)
					printf '("ports" summary "%s")\n' \
							"`_ "Configuring IP addresses and ports, which hears server"`"
					printf '("mods" summary "%s")\n' \
							"`_ "Manage load modules"`"
					printf '("sites" summary "%s")\n' \
							"`_ "Manage sites"`"
					printf '("extra" summary "%s")\n' \
							"`_ "Advanced settings"`"
					;;
				read)
					;;
			esac
			echo ')'
			;;
		1)
			echo '('
			case "${objs[1]}" in
				ports|mods|sites|extra)
					printf '("available" name "%s" summary "%s")\n' \
							`print_aes_name "$object1" "available"` \
							"`_ "Available configs"`"
					printf '("enabled" name "%s" summary "%s")\n' \
							`print_aes_name "$object1" "enabled"` \
							"`_ "Enabled configs"`"
					printf '("start" name "%s" summary "%s")\n' \
							`print_aes_name "$object1" "start"` \
							"`_ "Manage automation integration configs"`"
					;;
			esac
			echo ')'
			;;

		*)
	######
	# OLD
	#
	case "$in_action" in
		constraints)
			echo '('
			case "$level" in
				2)
					if [ ${objs[2]} = "available" ]; then
						case "${objs[1]}" in
							ports|mods|sites|extra)
								printf 'name (label "%s" required #t)\n' "`_ "Name"`"
								printf 'status_def (label "%s")\n' "`_ "By default"`"
								printf 'enabled (label "%s")\n' "`_ "Enabling"`"
								printf 'summary (label "%s")\n' "`_ "Summary"`"
								;;
						esac
					fi
					;;
				3)
					if [ ${objs[2]} = "available" ]; then
						case "${objs[1]}" in
							sites)
								printf 'summary (label "%s")\n' "`_ "Summary"`"
								printf 'ServerName (label "%s")\n' "ServerName"
								printf 'ServerPath (label "%s")\n' "ServerPath"
								printf 'ServerAdmin (label "%s")\n' "ServerAdmin"
								printf 'DocumentRoot (label "%s")\n' "DocumentRoot"
								printf 'ErrorLog (label "%s")\n' "ErrorLog"
								printf 'dir (label "%s")\n' "`_ "Directory"`"
								printf 'newdir (label "%s")\n' "`_ "Directory to"`"
								printf 'include (label "%s")\n' "`_ "Include"`"
								printf 'fname (label "%s")\n' "`_ "File name"`"
								printf 'requires (label "%s")\n' "`_ "Function"`"
								;;
						esac
					fi
					;;
				5)
					if [ ${objs[2]} = "available" ]; then
						case "${objs[1]}" in
							sites)
								case "${objs[4]}" in
									dirs)
										printf 'dir (label "%s")\n' "`_ "Directory"`"
										printf 'summary (label "%s")\n' "`_ "Summary"`"
										printf 'requires (label "%s")\n' "`_ "Function"`"
										printf 'include (label "%s")\n' "`_ "Include"`"
										;;
								esac
								;;
						esac
					fi
					;;
			esac
			echo ')'
			;;
		list)
			echo '('
			if [  $level != 0 ]; then
				case "${objs[1]}" in
					ports|mods|sites|extra)
						if [ $level != 1 ]; then
							case "${objs[2]}" in
								available)
									local conf_suf="conf"
									if [ "${objs[1]}" = "mods" ]; then
										conf_suf="load"
									fi
									case "$level" in
										2)
											local epath="$APACHE_CONFDIR"/`print_aes_name "${objs[1]}" "enabled"`
											find "$epath" -maxdepth 1 -name "*.$conf_suf" -type f -o -type l -exec readlink -e {} \; | \
												{
													local nefnames=0
													local efnames=""
													local fname
													while read -r fname; do
														let nefnames++
														efnames[$nefnames]="$fname"
													done
													/usr/sbin/a2chkconfig_list "${objs[1]}" | \
														{
															local ns=0
															local sns=""
															local sus=""
															local sn
															local su
															local t
															while read -r t sn su; do
																let ns++
																sns[$ns]="$sn"
																sus[$ns]="$su"
															done
															local apath="$APACHE_CONFDIR"/`print_aes_name "${objs[1]}" "available"`
															find "$apath" -maxdepth 1 -name "*.$conf_suf" -type f -o -type l | \
																{
																	local fn
																	while read -r fn; do
																		local i
																		local en="`_ "no"`"
																		local fname=`readlink -e "$fn"`
																		for i in `seq 1 "$nefnames"`; do
																			if [ "x$fname" = "x${efnames[$i]}" ]; then
																				en="`_ "yes"`"
																				break;
																			fi
																		done
																		local name=`echo "$fn"|sed -e "s@^$apath/\([^[:space:]]\+\)\.$conf_suf\\$@\1@"`
																		local status_def="`_ "none"`"
																		for i in `seq 1 "$ns"`; do
																			if [ "x$name" = "x${sns[$i]}" ]; then
																				status_def="${sus[$i]}"
																				break;
																			fi
																		done
																		case "$status_def" in
																			yes)
																				status_def="`_ "enable"`"
																				;;
																			no)
																				status_def="`_ "disable"`"
																				;;
																		esac
																		local summary="`get_summary "$fn"`"
																		printf '("%s" enabled "%s" status_def "%s" summary "%s")\n' \
																				"$name" "$en" "$status_def" "$summary"
																	done
																}
														}
												}
											;;
										3)
											if [ "${objs[3]}" = "avail_actions" ]; then
												print_avail_actions
											elif [ "${objs[1]}" = "sites" -o \
													"${objs[1]}" = "ports" -o \
													"${objs[1]}" = "extra" ]; then
												printf '("provides" label "%s")\n' "`_ "Provides for this config"`"
												printf '("requires" label "%s")\n' "`_ "Requires for this config"`"
												if [ "${objs[1]}" = "sites" ]; then
													printf '("dirs" label "%s")\n' "`_ "Directory in this config"`"
												fi
											fi
											;;
										4|5|6)
											if [ "${objs[1]}" = "sites" ]; then
												local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
												case "${objs[4]}" in
													dir_actions)
														print_dir_actions
														;;
													scriptalias_actions)
														print_alias_actions
														;;
													alias_actions)
														print_alias_actions
														;;
													scriptalias)
														print_alias "$fname" "$P_ScriptAlias"
														;;
													alias)
														print_alias "$fname" "$P_Alias"
														;;
													requires)
														print_dir_requires
														;;
													dirs)
														if [ $level = 4 ]; then
															get_dirs_headers "$fname" | \
																sed -nr 's/^[[:space:]]*md5[[:space:]]+([^[:space:]]+)[[:space:]]+([^[:space:]]+)[[:space:]]+(.*)[[:space:]]*$/\1\t\2\t\"\3\"/p' | \
																{
																	local md5 np p
																	local omd5=""
																	local odir=""
																	local oinc=""
																	local ofinc=""
																	local osummary=""
																	while read -r md5 np p; do
																		if [ "x$md5" != "x$omd5" ]; then
																			if [ "x$omd5" != "x" ]; then
																				printf '("%s" dir %s summary %s include "%s" fname "%s")\n' \
																					"$omd5" "$odir" "$osummary" "$oinc" "$ofinc"
																			fi
																			omd5="$md5"
																			odir=""
																			osummary=""
																			oinc=""
																			ofinc=""
																		fi
																		case "$np" in
																			Directory)
																				odir="$p"
																				;;
																			Summary)
																				osummary="$p"
																				;;
																			Include)
																				ofinc="`echo $p | sed -r "s@^[[:space:]\\'\\"]*conf/([^\\'\\"]*)[[:space:]\\'\\"]*@$APACHE_CONFDIR/\\1@"`"
																				oinc="`echo $ofinc | sed -r "s@^$APACHE_CONFDIR/extra-available/([^\\'\\"]*)\.conf[[:space:]\\'\\"]*@\\1@"`"
																				;;
																		esac
																	done
																	if [ "x$omd5" != "x" ]; then
																		printf '("%s" dir %s summary %s include "%s" fname "%s")\n' \
																			"$omd5" "$odir" "$osummary" "$oinc" "$ofinc"
																	fi
																}
															elif [ $level = 6 ]; then
																case "${objs[6]}" in
																	requires)
																		print_dir_requires
																		;;
																	include)
																		get_dirs_headers "$fname" | \
																			sed -nr "s/^[[:space:]]*md5[[:space:]]+${objs[5]}[[:space:]]+Requires[[:space:]]+(.*)[[:space:]]*$/\"\1\"/p" | \
																			head -n 1 | \
																			{
																				local req=""
																				read -r req || req="Directory"
																				find_Provides_files "$req" | \
																					sed -rn "/^[[:space:]]*include[[:space:]]*/s/^[[:space:]]*include[[:space:]]*(.+)$/\(\1\)/p"
																			}
																		;;
																esac
															fi
														;;
												esac
											fi
											;;
									esac
									;;
							esac
						fi
						;;
				esac
			fi
			echo ')'
			;;
		read)
			echo '('
			case "$level" in
				3|5)
					case "${objs[1]}" in
						sites)
							case "${objs[2]}" in
								available)
									if [ $level -ge 3 ]; then
										local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
										printf 'group_name "%s"\n' "${objs[1]}/${objs[3]}"
										if [ $level = 3 ]; then
											printf 'group_summary "%s %s"\n' \
													"`_ "Configure virtual host"`" "${objs[3]}"
											printf 'summary "%s"\n' "`get_summary "$fname"`"
											sed -rn "$P_pre_VirtualHost
/$P_fs_ServerName/{
	1,1s/$P_fs_ServerName[[:space:]\'\"]*([A-Za-z0-9.:\/-]+).*\$/ServerName \"\1\"/p}
/$P_fs_ServerPath/{
	1,1s/$P_fs_ServerPath[[:space:]\'\"]*([^[:space:]'\"]+).*\$/ServerPath \"\1\"/p}
/$P_fs_ServerAdmin/{
	1,1s/$P_fs_ServerAdmin[[:space:]\'\"]*([^[:space:]'\"]+).*\$/ServerAdmin \"\1\"/p}
/$P_fs_DocumentRoot/{
	1,1s/$P_fs_DocumentRoot[[:space:]\'\"]([^[:space:]'\"]+).*\$/DocumentRoot \"\1\"/p}
/$P_fs_ErrorLog/{
	1,1s/$P_fs_ErrorLog[[:space:]\'\"]*([^[:space:]'\"]+).*\$/ErrorLog \"\1\"/p}
$P_post_VirtualHost" \
												"$fname"
										elif [ $level = 5 ]; then
											if [ "${objs[4]}" = "dirs" ]; then
												get_dirs_headers "$fname" | \
													sed -nr "s/^[[:space:]]*md5[[:space:]]+${objs[5]}[[:space:]]+([^[:space:]]+)[[:space:]]+(.*)[[:space:]]*$/\1\t\"\2\"/p" | \
													{
														local np p
														local odir=""
														local osummary=""
														local orequires=""
														local oinc=""
														local ofname=""
														while read -r np p; do
															case "$np" in
																Directory)
																	odir="`strip_kav "$p"`"
																	;;
																Summary)
																	osummary="$p"
																	;;
																Requires)
																	orequires="$p"
																	;;
																Include)
																	ofname="`echo $p | sed -r "s@^[[:space:]\\'\\"]*conf/([^\\'\\"]*)[[:space:]\\'\\"]*@$APACHE_CONFDIR/\\1@"`"
																	oinc="`echo $ofname | sed -r "s@^$APACHE_CONFDIR/extra-available/([^\\'\\"]*)\.conf[[:space:]\\'\\"]*@\\1@"`"
																	;;
															esac
														done
														if [ "x$odir" != "x" ]; then
															printf 'group_summary "%s %s %s %s"\n' \
																	"`_ "Configure directory"`" \
																	"$odir" \
																	"`_ "for virtual host"`" \
																	"${objs[3]}"
															printf 'dir "%s"\n' \
																"$odir"
															if [ "x$osummary" != "x" ]; then
																printf 'summary %s\n' \
																	"$osummary"
															fi
															if [ "x$orequires" = "x" ]; then
																orequires="Directory"
															fi
															printf 'requires %s\n' \
																"$orequires"
															printf 'include "%s"\n' \
																"$oinc"
															printf 'fname "%s"\n' \
																"$ofname"
														fi
													}
											fi
										fi
									fi
									;;
							esac
							;;
					esac
					;;
				else)
					printf 'group_name "%s"\n' "${objs[1]}"
					case "${objs[1]}" in
						ports)
							printf 'group_summary "%s"\n' \
								"`_ "Configuring IP addresses and ports, which hears server"`"
							;;
						mods)
							printf 'group_summary "%s"\n' \
								"`_ "Manage load modules"`"
							;;
						sites)
							printf 'group_summary "%s"\n' \
								"`_ "Manage sites"`"
							;;
						extra)
							printf 'group_summary "%s"\n' \
								"`_ "Advanced settings"`"
							;;
					esac
					;;
				esac
			echo ')'
			;;
		write)
			if [  $level = 3 ]; then
				case "${objs[1]}" in
					sites)
						case "${objs[2]}" in
							available)
								local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
								local summary="`get_summary "$fname"`"
								local fo_summary
								if [ "x$summary" != "x" ]; then
									fo_summary="y"
								fi
								sed -rn "$P_pre_VirtualHost
/$P_fs_ServerName/{
	1,1s/$P_fs_ServerName[[:space:]\'\"]*([A-Za-z0-9.:\/-]+).*\$/ServerName=\"\1\"/p}
/$P_fs_ServerPath/{
	1,1s/$P_fs_ServerPath[[:space:]\'\"]*([^[:space:]'\"]+).*\$/ServerPath=\"\1\"/p}
/$P_fs_ServerAdmin/{
	1,1s/$P_fs_ServerAdmin[[:space:]\'\"]*([^[:space:]'\"]+).*\$/ServerAdmin=\"\1\"/p}
/$P_fs_DocumentRoot/{
	1,1s/$P_fs_DocumentRoot[[:space:]\'\"]([^[:space:]'\"]+).*\$/DocumentRoot=\"\1\"/p}
/$P_fs_ErrorLog/{
	1,1s/$P_fs_ErrorLog[[:space:]\'\"]*([^[:space:]'\"]+).*\$/ErrorLog=\"\1\"/p}
$P_post_VirtualHost" \
									"$fname" | \
									{
										local ServerName fo_ServerName
										local ServerPath fo_ServerPath
										local ServerAdmin fo_ServerAdmin
										local DocumentRoot fo_DocumentRoot
										local ErrorLog fo_ErrorLog

										local o

										while read -r o; do
											eval "$o"
											eval "fo_${o%=*}=y"
										done
										for o in summary ServerName ServerPath ServerAdmin DocumentRoot ErrorLog; do
											local no
											local oold
											local foold
											local onew
											local p_o
											local p_f_o
											local p_fs_o
											local sa
											local p_pre p_post

											eval "oold=\"\$$o\""
											eval "foold=\"\$fo_$o\""
											eval "onew=\"\$in_$o\""
											if [ "x$o" = "xsummary" ]; then
												no="# Summary:"
												p_o="$P_Summary"
												p_f_o="$P_f_Summary"
												p_fs_o="$P_fs_Summary"
												p_pre="$P_pre_Summary"
												p_post="$P_post_Summary"
											else
												no="$o"
												eval "p_o=\"\$P_$o\""
												eval "p_f_o=\"\$P_f_$o\""
												eval "p_fs_o=\"\$P_fs_$o\""
												p_pre="$P_pre_VirtualHost/$p_fs_o/{
"
												p_post="
}$P_post_VirtualHost"
											fi

											if [ "x$onew" = "x" ]; then
												sa="1,1d"
											elif [ "x$oold" = "x$onew" ]; then
												continue
											else
												local eonew="`echo "$onew"|sed -e 's@\\\\@\\\\\\\\@g;s@/@\\\\/@g'`"
												if [ "x$o" != "xsummary" ]; then
													eonew="`echo "$eonew"|sed -r "s/^[[:space:]'\\"]*([^[:space:]'\\"].*[^[:space:]'\\"])[[:space:]'\\"]*$/\\1/"`"
												fi
												if [ "x$foold" = "xy" ]; then
													sa="	1,1s/^([[:space:]]*)$p_f_o.*\$/\1$no $eonew/"
												elif [ "x$o" = "xsummary" ]; then
													p_pre="1,1{
"
													p_post="
}"
													sa="	i\\$no $eonew"
												else
													p_pre="1,/$P_ZT_VirtualHost/{
"
													p_post="
}"
													sa="	\$i\\	$no $eonew"
												fi
											fi
											sed -i -r "$p_pre$sa$p_post" "$fname"
										done
									}
								;;
						esac
						;;
				esac
			elif [  $level = 5 ]; then
				case "${objs[1]}" in
					sites)
						case "${objs[2]}" in
							available)
								local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
								case "${objs[4]}" in
									dirs)
										local md5="${objs[5]}"
										local include=""

										if [ "x$in_include" != "x" ]; then
											include="conf/extra-available/`strip_kav "$in_include"`.conf"
										fi

										set_Directory_opt "$fname" "$md5" "Include" "$include"
										set_Directory_opt "$fname" "$md5" "Requires" "$in_requires"
										set_Directory_opt "$fname" "$md5" "Summary" "$in_summary"
										;;
								esac
								;;
						esac
						;;
				esac
			fi
			echo '()'
			;;
		new)
			case "$level" in
				2)
					case "${objs[1]}" in
						sites)
							case "${objs[2]}" in
								available)
									local vhpath="$VHOSTS_PATH/$in_name"
									mkdir -p "$vhpath/html"
									mkdir -p "$vhpath/cgi-bin"
									chgrp webmaster "$vhpath" "$vhpath/html" "$vhpath/cgi-bin"
									chmod 2775 "$vhpath" "$vhpath/html" "$vhpath/cgi-bin"
									local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/$in_name.conf"
									echo "# Summary: Name-based Virtual Hosts, generated alterator-apache2

<VirtualHost *>
	ServerAdmin \"webmaster@$in_name\"
	ServerName \"$in_name\"
	DocumentRoot \"$vhpath/html\"
	ErrorLog \"$LOG_PATH/$in_name.error_log\"
</VirtualHost>" > "$fname"
									new_alias "$fname" "ScriptAlias" "/cgi-bin/" "$vhpath/cgi-bin/"
									new_Directory "$fname" "/" "Directory-root" \
											"Configure for all dirs by default"
									new_Directory "$fname" "$vhpath/html" "Directory-html" \
											"Configure for html documents in DocumentRoot"
									new_Directory "$fname" "$vhpath/cgi-bin" "Directory-cgi" \
											"Default config for CGI directory"
									;;
							esac
							;;
					esac
					;;
				3)
					case "${objs[1]}" in
						sites)
							case "${objs[2]}" in
								available)
									local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
									local dir="`strip_kav "$in_dir"`"
									local req="`strip_kav "$in_requires"`"

									if [ "x$dir" != "x" ] && [ "x$req" != "x" ]; then
										new_Directory "$fname" "$dir" "$req"
									fi
									;;
							esac
							;;
					esac
					;;
			esac
			echo '()'
			;;
		new_scriptalias|new_alias)
			if [ $level = 3 ]; then
				if [ "${objs[1]}/${objs[2]}" = "sites/available" ]; then
					local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
					local type="Alias"
					if [ "$in_action" = "new_scriptalias" ]; then
						type="ScriptAlias"
					fi
					new_alias "$fname" "$type" "$in_alias" "$in_dir"
				fi
			fi
			echo '()'
			;;
		nop)
			echo '()'
			;;
		none_def|en_def|dis_def|delete)
			if [ $level = 3 ]; then
				case "${objs[1]}" in
					ports|mods|sites|extra)
						if [ "${objs[2]}" = "available" ]; then
							if [ "$in_action" = "delete" ] &&
									[ "${objs[1]}" != "mods" ]; then
								local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
								rm -f "$fname"
							else
								local conf="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "start"`/$ALTERATOR_SCONF"
								local p_yes="[Yy][Ee][Ss]"
								local p_no="[Nn][Oo]"
								local p_yn="\($p_yes\)\|\($p_no\)"
								local p_f="^[[:space:]]*${objs[3]}=\|\([[:space:]]\+\)"
								local p_e="\(\([[:space:]].*\)\|\)$"
								local p1="$p_f$p_yn$p_e"
								if [ "$in_action" = "none_def" ]; then
									sed -i -e "/$p1/d" "$conf" 2>&1 >/dev/null || :
								else
									local action="yes"
									local p="$p_n"
									if [ "$in_action" = "dis_def" ]; then
										action="no"
										p="$p_y"
									fi
									sed -i -e "/$p_f$p$p_e/s/^.*$/${objs[3]}=$action/" "$conf" 2>&1 >/dev/null || :
									grep -q -s "$p1" "$conf" || \
										{
											printf '%s=%s\n' "${objs[3]}" "$action" >> "$conf"
										}
								fi
							fi
							/usr/sbin/a2chkconfig 2>&1 >/dev/null || :
						fi
						;;
				esac
			elif [ $level = 5 ]; then
				case "${objs[1]}" in
					sites)
						if [ "${objs[2]}" = "available" ]; then
							if [ "$in_action" = "delete" ]; then
								local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
								case "${objs[4]}" in
									dirs)
										del_Directory "$fname" "${objs[5]}"
										;;
									alias)
										del_Alias "$fname" "${objs[5]}" "Alias"
										;;
									scriptalias)
										del_Alias "$fname" "${objs[5]}" "ScriptAlias"
										;;
								esac
							fi
						fi
						;;
				esac
			fi
			echo '()'
			;;
		enable|disable)
			if [ $level = 3 ]; then
				case "${objs[1]}" in
					ports|mods|sites|extra)
						case "${objs[2]}" in
							available)
								local action="yes"
								if [ "$in_action" = "disable" ]; then
									action="no"
								fi
								/usr/sbin/`print_a2used_name "${objs[1]}" "$action"` "${objs[3]}" 2>&1 >/dev/null ||:
								;;
						esac
						;;
				esac
			fi
			echo '()'
			;;
		reset_dir)
			if [ $level = 5 ]; then
				if [ "${objs[1]}/${objs[2]}/${objs[4]}" = "sites/available/dirs" ]; then
					if [ "x$in_dir" != "x" ]; then
						local dir="`strip_kav "$in_dir"`"
						local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
						local odir="`dirs_md5_list "$fname" | \
								sed -rn "/^[[:space:]]*${objs[5]}[[:space:]]/s/^[[:space:]]*${objs[5]}$P_parg+($P_sarg+)$P_parg*$/\1/p" | \
								head -n 1`"
						odir="`strip_kav "$odir"`"
						if [ "x$odir" != "x" ]; then
							sed -i -r "$P_pre_VirtualHost
\:$P_FOT_Directory$odir$P_parg>$P_send:,/$P_ZT_Directory/{
	1,1s:^([[:space:]]*)<.*>(.*)$:\1<Directory \"$dir\">\2:
}
$P_post_VirtualHost" \
									"$fname"
						fi
					fi
				fi
			fi
			echo '()'
			;;
		reset_alias)
			if [ $level = 5 ]; then
				if [ "${objs[1]}/${objs[2]}" = "sites/available" ]; then
					local pat
					case "${objs[4]}" in
						alias)
							pat="Alias"
							;;
						scriptalias)
							pat="ScriptAlias"
							;;
					esac
					local fname="$APACHE_CONFDIR/`print_aes_name "${objs[1]}" "available"`/${objs[3]}.conf"
					set_Alias_opt "$fname" "${objs[5]}" "$pat" "$in_alias" "$in_dir"
				fi
			fi
			echo '()'
			;;
		*)
			echo '#f'
			;;
	esac
		;;
	esac
}

message_loop
