#!/bin/bash set -e . /usr/share/yunohost/helpers do_pre_regen() { pending_dir=$1 cd /usr/share/yunohost/templates/postfix postfix_dir="${pending_dir}/etc/postfix" mkdir -p "$postfix_dir" default_dir="${pending_dir}/etc/default/" mkdir -p "$default_dir" # install plain conf files cp plain/* "$postfix_dir" # prepare main.cf conf file main_domain=$(cat /etc/yunohost/current_host) domain_list=$(sudo yunohost domain list --output-as plain --quiet | tr '\n' ' ') # Support different strategy for security configurations export compatibility="$(yunohost settings get 'security.postfix.compatibility')" export main_domain export domain_list ynh_render_template "main.cf" "${postfix_dir}/main.cf" cat postsrsd \ | sed "s/{{ main_domain }}/${main_domain}/g" \ | sed "s/{{ domain_list }}/${domain_list}/g" \ > "${default_dir}/postsrsd" # adapt it for IPv4-only hosts if [ ! -f /proc/net/if_inet6 ]; then sed -i \ 's/ \[::ffff:127.0.0.0\]\/104 \[::1\]\/128//g' \ "${postfix_dir}/main.cf" sed -i \ 's/inet_interfaces = all/&\ninet_protocols = ipv4/' \ "${postfix_dir}/main.cf" fi } do_post_regen() { regen_conf_files=$1 [[ -z "$regen_conf_files" ]] \ || { sudo service postfix restart && sudo service postsrsd restart; } } 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