#! /bin/bash

case $DEBUG in
  1) set -x
     ;;
  *)
     ;;
esac

error() { # juste pour usage
		echo $1 1>&2
}

usage() {
		error "usage : survey-smb.sh [ -h for help ] -d <smb mounted dir> -l <logfile> -p <hostname> [ -s for shutdown ]"
		error "example : survey-smb.sh -d /mnt/bonnie/home/c21 -l survey-smb.log -p bonnie"
}

shut=0

while true
do
  case $1 in
    -d) mounteddir=$2
        shift 2
		;;
    -h) usage
		exit 0
		;;
	-l) logfile=$2
		shift 2
		;;
	-p) host=$2
		shift 2
		;;
	-s) shut=1
		shift 1
		;;
     *)
		break
		;;
  esac
done

if [ -z "$mounteddir" -o -z "$logfile" ] 
then
		usage
		exit 1
fi

if [ -n $host ]
then
	if [ $shut -eq 0 ]
	then
		ping -c 2 $host > /dev/null 2>&1
		if [ $? -ne 0 ]
		then
				umount $mounteddir 2> /dev/null
				exit 0
		fi
	else
		ping -c 2 $host > /dev/null 2>&1 || /sbin/halt
	fi
fi

date=`date '+%d-%m-%Y'`
error() {
		echo "ERROR:survey-smb.sh:$date: $1" 1>&2
		echo "ERROR:survey-smb.sh:$date: $1" >> $logfile
}

df | grep $mounteddir > /dev/null 2>&1
if [ $? -ne 0 ]
then
		mounterror=`mount $mounteddir 2>&1`
		if [ $? -ne 0 ]
		then
				error "cannot mount $mounteddir : $mounterror"
				exit 1
		fi
fi

exit 0

