#!/bin/bash set -e do_pre_regen() { pending_dir=$1 cd /usr/share/yunohost/templates/rmilter install -D -m 644 rmilter.conf \ "${pending_dir}/etc/rmilter.conf" install -D -m 644 rmilter.socket \ "${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 sudo mkdir -p /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 [ -z "$regen_conf_files" ] && exit 0 # reload systemd daemon [[ "$regen_conf_files" =~ rmilter\.socket ]] && { sudo systemctl -q daemon-reload } # ensure that the socket is listening and stop the service - it will be # started again by the socket as needed sudo systemctl -q start rmilter.socket sudo systemctl -q stop rmilter.service 2>&1 || true } 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