#!/bin/sh
# repertoire ou se trouve la base de donnees
destdir=/etc/dansguardian/lists
# repertoire des logs de squid
logdir=/var/log/squid
# fichier de log pour savoir si le telechargement s'est bien deroule
logfile=$logdir/upd_blacklist.log
# site ftp
ftp_url=ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/
# fichier de blacklisting
blfile=blacklists.tar.gz

#gestion d'erreurs et logs
launch() {
cmd=$1
purpose=$2
echo "#$2" | tee -a $logfile
echo $cmd | tee -a $logfile && err=`eval "$cmd 2>&1"`

if [ $? -ne 0 ] ; then
        echo "ERREUR $? : $err" | tee -a $logfile
        exit
fi
}

#entete et log
entete() {
cat << EOF
#----------------------------------------
#TELECHARGEMENT DES BLACKLISTS POUR SQUID
#----------------------------------------
#`date`
logfile=$logfile

EOF
}

# entete du fichier journal
entete | tee $logfile

#sauvegarde de l'ancienne blacklist
if [ -f "$destdir/$blfile" ] ; then
        launch "mv -v $destdir/$blfile $destdir/$blfile.bak" "sauvegarde
de l'ancienne blacklist"
fi

#telechargement de la blacklist
launch "wget -N -P $destdir ${ftp_url}${blfile}" "telechargement ftp de
la blacklist"

# initialiser les repertoires au debut
[ ! -d ${destdir}/blacklists ] && mkdir -p ${destdir}/blacklists
# Decompression du fichier recupere
launch "tar xvzf ${destdir}/${blfile} -C $destdir" "Decompression du
fichier downloade"

if [ -f /var/run/squid.pid ] ; then
        # arret de squid
        launch "/etc/init.d/squid stop" "Arret de squid"

        if [ -f /var/run/dansguardian.pid ] ; then
        # arret de dansguardian
                launch "/etc/init.d/dansguardian stop" "arret de
dansguardian"
        fi

        # redemarrage de squid
        launch "/etc/init.d/squid start" "Redemarrage de squid"
	# redemarrage de dansguardian
        launch "/etc/init.d/dansguardian start" "Redemarrage de
dansguardian"
fi
