summaryrefslogtreecommitdiff
path: root/amavis/mkaddon.sh
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2003-07-12 12:55:48 +0000
committerJonas Smedegaard <dr@jones.dk>2003-07-12 12:55:48 +0000
commit3a32f80cf86d9f5a74e67ef72ed7cc06bcf1f3a5 (patch)
treef6b88011ba6e86862107212dc364ac25551c8eba /amavis/mkaddon.sh
parent47e56144cc63d9827227a18bc544359d0cd1da89 (diff)
Properly handle per-maildomain alerts.
Diffstat (limited to 'amavis/mkaddon.sh')
-rwxr-xr-xamavis/mkaddon.sh40
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"