summaryrefslogtreecommitdiff
path: root/amavis/mkaddon.sh
blob: 8bc632c43fc32d08cf57c94050e3f109ab6c74bd (plain)
  1. #!/bin/sh
  2. set -e
  3. basedir="/etc/local-COMMON/amavis"
  4. destfile="amavisd.conf.addon"
  5. >"$basedir/$destfile.new" cat <<EOF
  6. #!/bin/perl
  7. ### WARNING: This file is generated automatically.
  8. ### Please edit $destfile.in and run mkaddon.sh
  9. EOF
  10. grep -v '^#!/bin/perl' "$basedir/$destfile.in" >> "$basedir/$destfile.new"
  11. echo "\$bypass_spam_checks_acl = qw( spamalert@ spam.police@ );" >> "$basedir/$destfile.new"
  12. #####################################################
  13. # Something's wrong - avoid cross-domain sharing of notifications for now. :-(
  14. cp -af "$basedir/$destfile" "$basedir/$destfile.old"
  15. mv "$basedir/$destfile.new" "$basedir/$destfile"
  16. exit 0
  17. #####################################################
  18. domainfiles="`find "$basedir" -name 'local_domains_*' -type f | sort -u`"
  19. maildomains=""
  20. for domainfile in $domainfiles; do
  21. maildomain="`basename $domainfile | sed 's/local_domains_//'`"
  22. maildomain_="`echo $maildomain | sed 's/\./_/g'`"
  23. maildomains="$maildomains $maildomain"
  24. domains="`cat "$domainfile" | grep -v '^#' | sed 's/#.*//' | sort -u`"
  25. eval "domains_$maildomain_=\"$domains\""
  26. done
  27. echo >> "$basedir/$destfile.new"
  28. echo "\$bypass_spam_checks_acl = qw(" >> "$basedir/$destfile.new"
  29. for maildomain in $maildomains; do
  30. echo " spamalert@$maildomain" >> "$basedir/$destfile.new"
  31. echo " spam.police@$maildomain" >> "$basedir/$destfile.new"
  32. done
  33. echo " spam-quarantine@" >> "$basedir/$destfile.new"
  34. echo ");" >> "$basedir/$destfile.new"
  35. for thing in virus spam; do
  36. echo >> "$basedir/$destfile.new"
  37. echo "\$${thing}_admin = {" >> "$basedir/$destfile.new"
  38. for maildomain in $maildomains; do
  39. maildomain_="`echo $maildomain | sed 's/\./_/g'`"
  40. eval "domains=\"\$domains_$maildomain_\""
  41. for domain in $domains; do
  42. echo " '.$domain' => '${thing}alert@$maildomain'," >> "$basedir/$destfile.new"
  43. done
  44. done
  45. echo " '.' => \"${thing}alert\\@\$mydomain\"," >> "$basedir/$destfile.new"
  46. echo "};" >> "$basedir/$destfile.new"
  47. done
  48. cp -af "$basedir/$destfile" "$basedir/$destfile.old"
  49. mv "$basedir/$destfile.new" "$basedir/$destfile"