#!/bin/sh

#
# Script de gnration des routages de messagerie.
#
# Syntaxe :
#	aucun paramtre
#
# Historique
#   2004/04/05 : pda/jean : cration
#

# Chemin complet du script de gnration d'une table de routages de sendmail
GENERER=/local/sbin/generer-routages

# Programme de gnration des fichiers .db utiliss par sendmail
MAKEMAP="/usr/sbin/makemap -N hash"

# Rpertoire o sendmail s'attend  trouver ses "maps"
MAPSDIR=/local/mail/maps

#
# Fichiers relatifs dans le rpertoire MAPSDIR
#
PROLOGUE=routages.prologue		# ajout en tte de la table de routage
ROUTAGES=routages			# le fichier gnr
OLD=$ROUTAGES.old			# la copie de l'ancien, au cas o...

#
# Fichier temporaire pour la gnration du nouveau routages
#
TMP=/tmp/mkroutages.$$

#
# Vrification de la syntaxe avant d'aller plus avant.
#
if [ $# != 0 ]
then
    echo "usage: $0" >&2
    exit 1
fi

cd $MAPSDIR

#
# Gnration du nouveau fichier de routages
#
rm -f $TMP
cat $PROLOGUE > $TMP && $GENERER >> $TMP
if [ $? != 0 ]
then
    echo "Erreur lors de la gnration des routages. Abandon."
    exit 1
fi

if cmp $TMP $ROUTAGES > /dev/null
then :
else
    #
    # Installer le nouveau fichier
    #
    cp $ROUTAGES $OLD
    if [ $? != 0 ]
    then
	echo "Erreur lors de la sauvegarde de l'ancien routages. Abandon."
	exit 1
    fi

    mv $TMP $ROUTAGES && $MAKEMAP $ROUTAGES < $ROUTAGES
    if [ $? != 0 ]
    then
	echo "Erreur lors de l'installation des routages. Abandon."
	mv $OLD $ROUTAGES
	exit 1
    fi

    #
    # Le rsultat va sur la sortie standard, et cron l'enverra par
    # mail.
    #
    diff $OLD $ROUTAGES
fi

rm -f $TMP
