File check-postfix.sh of Package kolab-scripts
#!/bin/bash
# KPS_CHECK_ORDER: 20
# (c) 2013 Aeneas Jaissle
# (c) 2013 Richard Bos
PATH=/usr/bin:/bin
echo -n "Checking create postfix config file in /etc/sysconfig/mail... "
eval $(grep ^MAIL_CREATE_CONFIG= /etc/sysconfig/mail)
if [[ "$MAIL_CREATE_CONFIG" == "no" ]]; then
echo OK
else
echo
BACKUP="/tmp/kolab-check-etc_sysconfig_mail-$(date +%s)"
cp /etc/sysconfig/mail $BACKUP
sed -i "s/^MAIL_CREATE_CONFIG=.*/MAIL_CREATE_CONFIG=\"no\"/" /etc/sysconfig/mail
echo " Changed the setting of MAIL_CREATE_CONFIG to: no"
echo " Backup stored at: $BACKUP"
echo
fi
# The following should already be done by kolab-mta's %post macro
# It should ensure that each of the settings is present exactly one time.
MAINCF=/etc/postfix/main.cf
echo -n "Checking postfix $MAINCF... "
# Check, if the following settings exist exactly one time. If not, create them.
SETTINGS="inet_interfaces local_recipient_maps mydestination transport_maps \
virtual_alias_maps smtpd_tls_auth_only smtpd_recipient_restrictions \
smtpd_sender_restrictions submission_recipient_restrictions \
submission_sender_restrictions submission_data_restrictions content_filter"
for SETTING in $SETTINGS; do
if [[ $(grep -c "^$SETTING = ." $MAINCF) != 1 ]]; then
CHANGE_NEEDED=yes
break
fi
done
if [[ "$CHANGE_NEEDED" == "yes" ]]; then
echo
BACKUP="/tmp/$(tr "/" "_" <<< "$MAINCF" | sed 's/^_//')_$(date +%s)"
cp $MAINCF $BACKUP
echo " Backup stored at: $BACKUP"
for SETTING in $SETTINGS; do
if [[ $(grep -c "^$SETTING = ." $MAINCF) == 1 ]]; then
echo " $SETTING: OK"
else
if [[ $(grep -c "^$SETTING =" $MAINCF) != 0 ]]; then
sed -i "s/^$SETTING/#$SETTING/" $MAINCF
fi
echo "$SETTING = default" >> $MAINCF
echo " Added Setting: $(grep -i "^$SETTING =" $MAINCF)"
fi
done
else
echo OK
fi