#!/bin/bash set -e do_pre_regen() { pending_dir=$1 cd /usr/share/yunohost/templates/rmilter # Install main configuration install -D -m 644 rmilter.conf \ "${pending_dir}/etc/rmilter.conf" # Install DKIM specific configuration install -D -m 644 ynh_dkim.conf \ "${pending_dir}/etc/rmilter.conf.d/ynh_dkim.conf" # Remove old socket file (we stopped using it, since rspamd 1.3.1) # Regen-conf system need an empty file to delete it install -D -m 644 /dev/null \ "${pending_dir}/etc/systemd/system/rmilter.socket" } do_post_regen() { regen_conf_files=$1 # retrieve variables domain_list=$(sudo yunohost domain list --output-as plain --quiet) # create DKIM directory with proper permission sudo mkdir -p /etc/dkim sudo chown _rmilter /etc/dkim # create DKIM key for domains for domain in $domain_list; do domain_key="/etc/dkim/${domain}.mail.key" [ ! -f $domain_key ] && { sudo opendkim-genkey --domain="$domain" \ --selector=mail --directory=/etc/dkim sudo mv /etc/dkim/mail.private "$domain_key" sudo mv /etc/dkim/mail.txt "/etc/dkim/${domain}.mail.txt" } done # fix DKIM keys permissions sudo chown _rmilter /etc/dkim/*.mail.key sudo chmod 400 /etc/dkim/*.mail.key # fix rmilter socket permission (postfix is chrooted in /var/spool/postfix ) sudo mkdir -p /var/spool/postfix/run/rmilter sudo chown -R postfix:_rmilter /var/spool/postfix/run/rmilter sudo chmod g+w /var/spool/postfix/run/rmilter [ -z "$regen_conf_files" ] && exit 0 # reload systemd daemon sudo systemctl -q daemon-reload # Restart rmilter due to the rspamd update # https://rspamd.com/announce/2016/08/01/rspamd-1.3.1.html sudo systemctl -q restart rmilter.service } FORCE=${2:-0} DRY_RUN=${3:-0} case "$1" in pre) do_pre_regen $4 ;; post) do_post_regen $4 ;; *) echo "hook called with unknown argument \`$1'" >&2 exit 1 ;; esac exit 0