#!/bin/sh
#
# Script de détection pour les montages NFS et la synchro.


#DOMAIN=`grep domain /etc/resolv.conf | cut -d " " -f 2`
DOMAIN=`hostname -d`


########################################################################
#                                                                      #
#   FONCTIONS COMMUNES                                                 #
#                                                                      #
########################################################################


do_sync () {
	# On peut penser à passer en paramètre $1 le nom du répertoire
	# où est monté par NFS le home du réseau, à utiliser avec l'option
	# -m $1
	for LOCAL_USER in `ls /home --ignore=lost+found`; do
		/usr/local/bin/filesync -u $LOCAL_USER -n .sync-$DOMAIN
	done
}


do_mounts () {
	# Bizarrement, mount -a -t nfs ne marche pas chez moi car les
	# répertoires NFS n'ont pas l'option auto (du moins c'est ce que
	# je pense).
	case $1 in
		up)   CMD="mount";;
		down) CMD="umount";;
	esac
	for REP in $2; do
		$CMD $REP
	done
}


########################################################################
#                                                                      #
#   DOMAINE : vipere.noire                                             #
#                                                                      #
########################################################################


do_vipere_noire_mounts () {
	# Pour d'autres domaines, ici on peut remplacer la commande awk par
	# une liste de répertoires prédéfinies en fonction du domaine sur
	# lequel on se branche.
	#
	# NFS_REPS="/mnt/home /var/mail /mnt/mp3"
	NFS_REPS=`grep -v "^#" /etc/fstab | awk '/nfs/{print $2}'`
	do_mounts $1 "$NFS_REPS"
}


do_vipere_noire_start () {
	do_vipere_noire_mounts up
	do_sync
	cp /etc/ppp/sendmail-lan.cf /etc/mail/sendmail.cf
	/etc/init.d/sendmail restart
	/etc/init.d/ntp stop
	/etc/init.d/ntpdate start
	/etc/init.d/ntp start
}


do_vipere_noire_stop () {
	do_sync
	do_vipere_noire_mounts down
}


########################################################################
#                                                                      #
#   FONCTIONS PRINCIPALES                                              #
#                                                                      #
########################################################################


do_start_network () {
	case $DOMAIN in
		vipere.noire) do_vipere_noire_start;;
	esac
}


do_stop_network () {
	case $DOMAIN in
		vipere.noire) do_vipere_noire_stop;;
	esac
}


do_suspend_network () {
	case $DOMAIN in
		vipere.noire) do_vipere_noire_mounts down;;
	esac
}


do_resume_network () {
	case $DOMAIN in
		vipere.noire) do_vipere_noire_mounts up;;
	esac
}


case $1 in
	start)   do_start_network;;
	stop)    do_stop_network;;
	suspend) do_suspend_network;;
	resume)  do_resume_network;;
esac



