mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[enh] Update dovecot conf_regen hook
This commit is contained in:
parent
3eacbef144
commit
df9094b896
3 changed files with 64 additions and 51 deletions
|
@ -1,51 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
force=$1
|
|
||||||
|
|
||||||
function safe_copy () {
|
|
||||||
if [[ "$force" == "True" ]]; then
|
|
||||||
sudo yunohost service safecopy \
|
|
||||||
-s dovecot $1 $2 --force
|
|
||||||
else
|
|
||||||
sudo yunohost service safecopy \
|
|
||||||
-s dovecot $1 $2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
cd /usr/share/yunohost/templates/dovecot
|
|
||||||
|
|
||||||
# Create vmail user
|
|
||||||
sudo id vmail > /dev/null 2>&1 \
|
|
||||||
|| sudo adduser --system --ingroup mail --uid 500 vmail
|
|
||||||
|
|
||||||
|
|
||||||
# Replace main domain in the main configuration file
|
|
||||||
main_domain=$(cat /etc/yunohost/current_host)
|
|
||||||
cat dovecot.conf.sed \
|
|
||||||
| sed "s/{{ main_domain }}/$main_domain/g" \
|
|
||||||
| sudo tee dovecot.conf
|
|
||||||
|
|
||||||
|
|
||||||
# Handle IPv4 only systems
|
|
||||||
if [ ! -f /proc/net/if_inet6 ];
|
|
||||||
then
|
|
||||||
sudo sed -i 's/^listen.*/listen = \*/' dovecot.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
safe_copy dovecot.conf /etc/dovecot/dovecot.conf
|
|
||||||
safe_copy dovecot-ldap.conf /etc/dovecot/dovecot-ldap.conf
|
|
||||||
|
|
||||||
|
|
||||||
# Setup Sieve
|
|
||||||
sudo mkdir -p /etc/dovecot/global_script
|
|
||||||
sudo chmod -R 770 /etc/dovecot/global_script
|
|
||||||
|
|
||||||
safe_copy dovecot.sieve /etc/dovecot/global_script/dovecot.sieve
|
|
||||||
sudo chmod 660 /etc/dovecot/global_script/dovecot.sieve > /dev/null 2>&1 \
|
|
||||||
|| safe_copy dovecot.sieve /etc/dovecot/global_script/dovecot.sieve
|
|
||||||
sudo sievec /etc/dovecot/global_script/dovecot.sieve
|
|
||||||
sudo chmod 660 /etc/dovecot/global_script/dovecot.svbin
|
|
||||||
sudo chown -R vmail:mail /etc/dovecot/global_script
|
|
||||||
|
|
||||||
sudo service dovecot restart
|
|
64
data/hooks/conf_regen/25-dovecot
Executable file
64
data/hooks/conf_regen/25-dovecot
Executable file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
do_pre_regen() {
|
||||||
|
pending_dir=$1
|
||||||
|
|
||||||
|
cd /usr/share/yunohost/templates/dovecot
|
||||||
|
|
||||||
|
dovecot_dir="${pending_dir}/etc/dovecot"
|
||||||
|
mkdir -p "${dovecot_dir}/global_script"
|
||||||
|
|
||||||
|
# copy simple conf files
|
||||||
|
cp dovecot-ldap.conf "${dovecot_dir}/dovecot-ldap.conf"
|
||||||
|
cp dovecot.sieve "${dovecot_dir}/global_script/dovecot.sieve"
|
||||||
|
|
||||||
|
# prepare dovecot.conf conf file
|
||||||
|
main_domain=$(cat /etc/yunohost/current_host)
|
||||||
|
cat dovecot.conf \
|
||||||
|
| sed "s/{{ main_domain }}/${main_domain}/g" \
|
||||||
|
> "${dovecot_dir}/dovecot.conf"
|
||||||
|
|
||||||
|
# adapt it for IPv4-only hosts
|
||||||
|
if [ ! -f /proc/net/if_inet6 ]; then
|
||||||
|
sed -i \
|
||||||
|
's/^\(listen =\).*/\1 */' \
|
||||||
|
"${dovecot_dir}/dovecot.conf"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
do_post_regen() {
|
||||||
|
# create vmail user
|
||||||
|
id vmail > /dev/null 2>&1 \
|
||||||
|
|| sudo adduser --system --ingroup mail --uid 500 vmail
|
||||||
|
|
||||||
|
# compile sieve script
|
||||||
|
# TODO: only compile if script changed
|
||||||
|
sudo sievec /etc/dovecot/global_script/dovecot.sieve
|
||||||
|
|
||||||
|
# fix permissions
|
||||||
|
sudo chown -R vmail:mail /etc/dovecot/global_script
|
||||||
|
sudo chmod -R 770 /etc/dovecot/global_script
|
||||||
|
sudo chmod 660 /etc/dovecot/global_script/dovecot.{sieve,svbin}
|
||||||
|
|
||||||
|
# TODO: only restart if conf changed
|
||||||
|
sudo service dovecot restart
|
||||||
|
}
|
||||||
|
|
||||||
|
FORCE=$2
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
pre)
|
||||||
|
do_pre_regen $3
|
||||||
|
;;
|
||||||
|
post)
|
||||||
|
do_post_regen
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "hook called with unknown argument \`$status'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Add table
Reference in a new issue