#!/bin/sh

set -e

basedir="/etc/local-COMMON/amavis"
destfile="amavisd.conf.addon"

>"$basedir/$destfile.new" cat <<EOF
#!/bin/perl
### WARNING: This file is generated automatically.
### Please edit $destfile.in and run mkaddon.sh
EOF

grep -v '^#!/bin/perl' "$basedir/$destfile.in" >> "$basedir/$destfile.new"

domainfiles="`find "$basedir" -name 'local_domains_*' -type f | tsort`"
maildomains=""
for domainfile in $domainfiles; do
	maildomain="`basename $domainfile | sed 's/local_domains_//' | tsort`"
	maildomain_="`echo $maildomain | sed 's/\./_/g'`"
	maildomains="$maildomains $maildomain"
	domains="`cat "$domainfile" | grep -v '^#' | sed 's/#.*//' | tsort`"
	eval "domains_$maildomain_=\"$domains\""
done

for thing in virus spam; do
	echo >> "$basedir/$destfile.new"
	echo "\$${thing}_admin = {" >> "$basedir/$destfile.new"
	for maildomain in $maildomains; do
		maildomain_="`echo $maildomain | sed 's/\./_/g'`"
		eval "domains=\"\$domains_$maildomain_\""
		for domain in $domains; do
			echo "	'.$domain'	=> '${thing}alert@$maildomain'," >> "$basedir/$destfile.new"
		done
	done
	echo "	'.'	=> \"${thing}alert\\@\$mydomain\"," >> "$basedir/$destfile.new"
	echo "};" >> "$basedir/$destfile.new"
done

cp -af "$basedir/$destfile" "$basedir/$destfile.old"
mv "$basedir/$destfile.new" "$basedir/$destfile"