ca37c41cd3a73bfe7bf4e82a8daa8d8ceb35d913
bn8 Import initial

bn8 authored 14 years ago

1) #!/bin/bash
2) 
root Multi check en cas d'erreur...

root authored 14 years ago

3) RC_HOME=/var/www/webmail/public_html
bn8 Import initial

bn8 authored 14 years ago

4) MAIL=root
root Multi check en cas d'erreur...

root authored 14 years ago

5) SEND_EVERY_NB_DAY=7
bn8 Import initial

bn8 authored 14 years ago

6) CACHE=/var/www/webmail/.cache_check_upgrade
root Multi check en cas d'erreur...

root authored 14 years ago

7) CACHE_FAILED=$CACHE.failed
8) MAX_CHECK=10
9) MAX_FAILED=3
10) SLEEP_ON_FAILED=10
11) CHECK_URL=http://www.roundcube.net/download
bn8 Import initial

bn8 authored 14 years ago

12) 
13) DEBUG=0
14) [ "$1" == "-v" ] && DEBUG=1
15) 
root Multi check en cas d'erreur...

root authored 14 years ago

16) current=`egrep "define.*RCMAIL_VERSION" $RC_HOME/program/include/iniset.php|sed "s/define('.*', '\([^']*\)'.*$/\1/"`
bn8 Import initial

bn8 authored 14 years ago

17) [ $DEBUG -eq 1 ] && echo "Current : $current"
18) 
root Multi check en cas d'erreur...

root authored 14 years ago

19) for i in `seq 1 $MAX_CHECK`
20) do
21) 	tmpfile=`mktemp`
22) 	wget -q $CHECK_URL -O $tmpfile
23) 	newest=`cat $tmpfile|grep Stable|sed 's/^.*Stable.*: \(.*\)<\/td>.*$/\1/'`
24) 	if [ -n "$newest" ]
25) 	then
26) 		[ $DEBUG -eq 1 ] && echo "Newest : $newest"
27) 		rm -f $CACHE_FAILED > /dev/null 2>&1
28) 
29) 		DOWNLOAD_URL=`cat $tmpfile|grep "$newest"|grep "tar.gz"|head -1|sed 's/.* href="\([^"]*\)" .*$/\1/'`
30) 		[ $DEBUG -eq 1 ] && echo "Download URL : $DOWNLOAD_URL"
31) 		[ ! -n "$DOWNLOAD_URL" ] && DOWNLOAD_URL="$CHECK_URL" && [ $DEBUG -eq 1 ] && echo "Use check URL as download URL : $DOWNLOAD_URL"
bn8 Import initial

bn8 authored 14 years ago

32) 
root Multi check en cas d'erreur...

root authored 14 years ago

33) 		rm -f $tmpfile > /dev/null 2>&1
34) 		break;
35) 	elif [ $i -eq $MAX_CHECK ]
36) 	then
37) 		error="Site du projet injoignable (ou structure du site modifie !!) => Impossible de recuperer le numero de la version stable actuel."
38) 		[ $DEBUG -eq 1 ] && echo $error
39) 		if [ -f $CACHE_FAILED ]
40) 		then
41) 			NB=`cat $CACHE_FAILED`
42) 			[ $DEBUG -eq 1 ] && echo "Fichier de cache d'erreur existe : $NB echec. Max : $MAX_FAILED"
43) 			if [ $NB -lt $MAX_FAILED ]
44) 			then
45) 				let NNB=NB+1
46) 				[ $DEBUG -eq 1 ] && echo "Augmentation du nb d'erreur dans le fichier de cache d'erreur : $NB -> $NNB"
47) 				echo -n $NNB > $CACHE_FAILED
48) 			else
49) 				[ $DEBUG -eq 1 ] && echo "MAX_FAILED atteint : on envoi un mail"
50) 				echo $error|mail -s "New RoundCude release check : FAILED" $MAIL
51) 			fi
52) 		else
53) 			[ $DEBUG -eq 1 ] && echo "Fichier de cache d'erreur n'existe pas : on l'initialise à 1."
54) 			echo -n 1 > $CACHE_FAILED
55) 		fi
56) 		[ $DEBUG -eq 1 ] && echo "exit 1"
57) 		exit 1
58) 	fi
59) 	[ $DEBUG -eq 1 ] && echo "Check failed ($i/$MAX_CHECK) : Sleep $SLEEP_ON_FAILED second before try again ..."
60) 	sleep $SLEEP_ON_FAILED
61) done
bn8 Import initial

bn8 authored 14 years ago

62) 
63) if [ "$newest" != "$current" ]
64) then
65) 	tmp=`mktemp`
66) 	echo "New RoundCude release" > $tmp
67) 	echo "=====================" >> $tmp
68) 	echo "Current : $current" >> $tmp
69) 	echo "Newest : $newest" >> $tmp
root Multi check en cas d'erreur...

root authored 14 years ago

70) 	echo >> $tmp
71) 	echo "Download URL : $DOWNLOAD_URL" >> $tmp
bn8 Import initial

bn8 authored 14 years ago

72) 	
73) 	M=0
74) 	if [ -f $CACHE ]
75) 	then
root Multi check en cas d'erreur...

root authored 14 years ago

76) 		if [ "`diff $tmp $CACHE`" != "" -o `find $CACHE -mtime +$SEND_EVERY_NB_DAY | wc -l` -eq 1 ]