diff options
author | Jonas Smedegaard <dr@jones.dk> | 2003-07-12 12:55:48 +0000 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2003-07-12 12:55:48 +0000 |
commit | 3a32f80cf86d9f5a74e67ef72ed7cc06bcf1f3a5 (patch) | |
tree | f6b88011ba6e86862107212dc364ac25551c8eba /amavis/mkaddon.sh | |
parent | 47e56144cc63d9827227a18bc544359d0cd1da89 (diff) |
Properly handle per-maildomain alerts.
Diffstat (limited to 'amavis/mkaddon.sh')
-rwxr-xr-x | amavis/mkaddon.sh | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/amavis/mkaddon.sh b/amavis/mkaddon.sh new file mode 100755 index 0000000..9840053 --- /dev/null +++ b/amavis/mkaddon.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +set -e + +basedir="/etc/local-COMMON/amavis" +destfile="amavisd.conf.addon" + +>"$basedir"/"$destfile".new cat <<EOF +### WARNING: This file is generated automatically. +### Please edit $destfile.in and run mkaddon.sh +EOF + +cat "$basedir"/"$destfile".in >> "$basedir"/"$destfile".new + +domainfiles="`find "$basedir" -name 'local_domains_*' -type f`" +maildomains="" +for domainfile in $domainfiles; do + maildomain="`basename $domainfile | sed 's/local_domains_//'`" + maildomain_="`echo $maildomain | sed 's/\./_/g'`" + maildomains="$maildomains $maildomain" + domains="`cat "$domainfile" | grep -v '^#' | sed 's/#.*//'`" + 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" |