#!/bin/bash

activer_sympa=$(CreoleGet activer_sympa non)
if [ $activer_sympa = 'non' ]; then
    systemctl disable --now sympa_sync.timer
    exit 0
fi

domaine_messagerie_etab=$(CreoleGet domaine_messagerie_etab)
container_path_mail=$(CreoleGet container_path_mail)

#à appeler après la generation de l'annuaire pour l'appel à Group()

option=$1

# copie du fichier de conf du domaine interne SYMPA
# /etc/sympa/i-$domaine_messagerie_etab
SYMPACONFDIR="/etc/sympa"
ETCSYMPA="${SYMPACONFDIR}/i-${domaine_messagerie_etab}"
FULL_ETCSYMPA="$container_path_mail/$ETCSYMPA"
if [ ! -d $FULL_ETCSYMPA ];then
    if [ "$option" = "reconfigure" ]; then
        echo "ATTENTION ! Le domaine de messagerie semble avoir changé"
        echo "Des dysfonctionnements sont possibles..."
        echo
        fi
    mkdir -p $FULL_ETCSYMPA
fi
cp /var/lib/eole/robot.conf $FULL_ETCSYMPA

# Mode d'authentification du robot #25281
cp ${container_path_mail}/${SYMPACONFDIR}/auth.conf ${FULL_ETCSYMPA}/

CreoleRun "chown -R sympa:sympa $ETCSYMPA" mail

# FIXME
#chmod a+r $SYMPADIR/cookie

# listes internes : /var/lib/sympa/expl/i-$domaine_messagerie_etab
CreoleService mysql start
VARSYMPA="/var/lib/sympa/expl/i-$domaine_messagerie_etab"
FULL_VARSYMPA="$container_path_mail/$VARSYMPA"
if [ ! -d $FULL_VARSYMPA ];then
    mkdir -p $FULL_VARSYMPA
    CreoleRun "chown sympa:sympa $VARSYMPA" mail
    touch "$container_path_mail/var/lib/sympa/create_list"
fi

# correction des droits sur /var/lib/sympa/expl (#23103)
CreoleRun "chown sympa:sympa /var/lib/sympa/expl" mail

# fichier des alias sympa pour Exim4
SYMPAALIAS="/etc/mail/sympa/aliases"
FULL_SYMPAALIAS="$container_path_mail/$SYMPAALIAS"
grep -q '^sympa: ' $FULL_SYMPAALIAS
if [ $? -ne 0 ];then
    echo "sympa: \"|/usr/lib/sympa/bin/queue sympa\"" >> $FULL_SYMPAALIAS
    CreoleRun "chown sympa:sympa $SYMPAALIAS" mail
    chmod 644 $FULL_SYMPAALIAS
fi

# sticky bit pour que l'appli web tourne en sympa
CreoleRun "chown sympa:sympa /usr/lib/cgi-bin/sympa/wwsympa.fcgi" mail
chmod u+s $container_path_mail/usr/lib/cgi-bin/sympa/wwsympa.fcgi
chmod g+s $container_path_mail/usr/lib/cgi-bin/sympa/wwsympa.fcgi

# Bonnes permissions sur le dossier du fake cgi
mkdir -p $container_path_mail/var/www/sympa
CreoleRun "chown sympa:sympa /var/www/sympa" mail

# Désactiver le configuration Apache de Sympa (#19561)
CreoleRun "/usr/sbin/a2disconf sympa" mail > /dev/null

# mod-rewrite apache2
CreoleRun "/usr/sbin/a2enmod rewrite >/dev/null" mail
# mod_suexec apache2
CreoleRun "/usr/sbin/a2enmod suexec >/dev/null" mail

READER="/root/.reader"
if [ $activer_sympa == 'oui' -a -f $READER ];then
    SEARCHPATH="$container_path_mail/var/lib/sympa/expl"
    PASSWORD=`cat /root/.reader`
    # vérification du mot de passe du reader ldap
    for config in `grep -l "user cn=reader" $SEARCHPATH/*/config $SEARCHPATH/*/*/config 2>/dev/null`;do
        grep -Eq "^passwd $PASSWORD$" $config
        if [ $? -ne 0 ];then
            sed -i "s/^passwd .*$/passwd $PASSWORD/g" $config
        fi
    done
fi

# We want to populate sympa database
# in mail container silently
CreoleRun 'su -l sympa -s /bin/sh -c "/usr/lib/sympa/bin/sympa.pl --upgrade_config_location"' mail >& /dev/null
CreoleRun 'su -l sympa -s /bin/sh -c "/usr/lib/sympa/bin/sympa.pl --health_check"' mail >& /dev/null
CreoleRun 'su -l sympa -s /bin/sh -c "/usr/lib/sympa/bin/sympa.pl --upgrade"' mail >& /dev/null
CreoleRun 'su -l sympa -s /bin/sh -c "/usr/share/sympa/bin/upgrade_bulk_spool.pl"' mail >& /dev/null
CreoleRun 'su -l sympa -s /bin/sh -c "/usr/share/sympa/bin/upgrade_send_spool.pl"' mail >& /dev/null
CreoleService mysql start
#End sympa database population

# Lower topics names case
sed -e 's/^topics\s\+.*/\L&/' -i $(find $FULL_VARSYMPA -type f -name config)
# Done lowering
# Activation du timer
systemctl enable --now sympa_sync.timer
# Erreur diagnose suite à restauration #32733 et #32458
systemctl reset-failed sympa_sync.timer

exit 0
