summaryrefslogtreecommitdiff
path: root/amavis/mkaddon.sh
blob: 528403ba65aa0655efa9c716797f11e6b61c093b (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. domainfiles="`find "$basedir" -name 'local_domains_*' -type f | sort -u`"
  12. maildomains=""
  13. for domainfile in $domainfiles; do
  14. maildomain="`basename $domainfile | sed 's/local_domains_//'`"
  15. maildomain_="`echo $maildomain | sed 's/\./_/g'`"
  16. maildomains="$maildomains $maildomain"
  17. domains="`cat "$domainfile" | grep -v '^#' | sed 's/#.*//' | sort -u`"
  18. eval "domains_$maildomain_=\"$domains\""
  19. done
  20. echo >> "$basedir/$destfile.new"
  21. echo "map { \$whitelist_sender{lc(\$_)}=1 } (qw(" >> "$basedir/$destfile.new"
  22. for maildomain in $maildomains; do
  23. echo " virusalert@$maildomain" >> "$basedir/$destfile.new"
  24. echo " spamalert@$maildomain" >> "$basedir/$destfile.new"
  25. echo " spam.police@$maildomain" >> "$basedir/$destfile.new"
  26. done
  27. echo "));" >> "$basedir/$destfile.new"
  28. for thing in virus spam; do
  29. echo >> "$basedir/$destfile.new"
  30. echo "\$${thing}_admin = {" >> "$basedir/$destfile.new"
  31. for maildomain in $maildomains; do
  32. maildomain_="`echo $maildomain | sed 's/\./_/g'`"
  33. eval "domains=\"\$domains_$maildomain_\""
  34. for domain in $domains; do
  35. echo " '.$domain' => '${thing}alert@$maildomain'," >> "$basedir/$destfile.new"
  36. done
  37. done
  38. echo " '.' => \"${thing}alert\\@\$mydomain\"," >> "$basedir/$destfile.new"
  39. echo "};" >> "$basedir/$destfile.new"
  40. done
  41. cp -af "$basedir/$destfile" "$basedir/$destfile.old"
  42. mv "$basedir/$destfile.new" "$basedir/$destfile"