summaryrefslogtreecommitdiff
path: root/amavis/mkaddon.sh
blob: 8bd46c092030878bf375dd9ed2477d26865819ec (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 | tsort`"
  12. maildomains=""
  13. for domainfile in $domainfiles; do
  14. maildomain="`basename $domainfile | sed 's/local_domains_//' | tsort`"
  15. maildomain_="`echo $maildomain | sed 's/\./_/g'`"
  16. maildomains="$maildomains $maildomain"
  17. domains="`cat "$domainfile" | grep -v '^#' | sed 's/#.*//' | tsort`"
  18. eval "domains_$maildomain_=\"$domains\""
  19. done
  20. for thing in virus spam; do
  21. echo >> "$basedir/$destfile.new"
  22. echo "\$${thing}_admin = {" >> "$basedir/$destfile.new"
  23. for maildomain in $maildomains; do
  24. maildomain_="`echo $maildomain | sed 's/\./_/g'`"
  25. eval "domains=\"\$domains_$maildomain_\""
  26. for domain in $domains; do
  27. echo " '.$domain' => '${thing}alert@$maildomain'," >> "$basedir/$destfile.new"
  28. done
  29. done
  30. echo " '.' => \"${thing}alert\\@\$mydomain\"," >> "$basedir/$destfile.new"
  31. echo "};" >> "$basedir/$destfile.new"
  32. done
  33. cp -af "$basedir/$destfile" "$basedir/$destfile.old"
  34. mv "$basedir/$destfile.new" "$basedir/$destfile"