Projet

Général

Profil

« Précédent | Suivant » 

Révision 1d30fbf1

Ajouté par Thomas Noël il y a plus de 9 ans

update-whitelists.sh (funny, isn't it ?)

Voir les différences:

usr/local/univnautes/sp/update-whitelists.sh
1
#!/bin/sh
2

  
3
COMMAND=$(basename $0 .sh)
4
WLDIR=/var/tmp/univnautes-sp-whitelists/
5

  
6
# lock to avoid concurrent updates
7
LOCK=/var/run/univnautes-sp-$COMMAND.lock
8
if [ -r $LOCK ]
9
then
10
	PID=`cat $LOCK`
11
	echo "$COMMAND locked by $LOCK"
12
	ps waux | grep "$PID" | grep $COMMAND | grep -vq grep && exit
13
	echo "... but PID $PID is not a $COMMAND, continue"
14
fi
15
unlock() {
16
	rm -f $LOCK
17
	exit
18
}
19
trap unlock INT TERM EXIT
20
echo $$ > $LOCK
21

  
22
## real start
23

  
24
log() {
25
	logger -p local4.info -t update-whitelist "$*"
26
}
27

  
28
rm -rf $WLDIR
29

  
30
cd /usr/local/univnautes/sp
31
./manage.py prepare-whitelists
32

  
33
cd $WLDIR
34
for wl in *
35
do
36
	. ${wl}/conf.sh
37
	log "download whitelist $CODENAME from $URL"
38
	if [ -r ${wl}/cacert.pem ]
39
	then
40
		CHECK="--ca-certificate=${WLDIR}/${wl}/cacert.pem"
41
	else
42
		CHECK="--no-check-certificate"
43
		log "warn: --no-check-certificate for whitelist $CODENAME"
44
	fi
45
	wget --quiet --tries=1 --timeout=10 $CHECK -O ${wl}/whitelist $URL
46
	RET=$?
47
	if [ $RET -ne 0 ]
48
	then
49
		rm -f ${wl}/whitelist
50
		log "warn: ERROR while downloading $URL"
51
	fi
52
done
53

  
54
cat $WLDIR/*/whitelist | \
55
	grep -v "\(^[[:space:]]*#\)\|\(^[[:space:]]*$\)" | \
56
	tr -d '
' | \
57
	sed 's#\(^[^/]*$\)#\1/32#' > $WLDIR/all
58

  
59

  
60
/usr/local/bin/php -q << EOPHP
61
<?php
62

  
63
require_once("functions.inc");
64
require_once("filter.inc");
65
require_once("shaper.inc");
66

  
67
\$wladdresses = '';
68
\$wlfile = file('/var/tmp/univnautes-sp-whitelists/all',
69
		FILE_IGNORE_NEW_LINES + FILE_SKIP_EMPTY_LINES);
70
foreach (\$wlfile as \$a) {
71
		\$wladdresses .= \$a . ' ';
72
}
73

  
74
if (!is_array(\$config['aliases']['alias']))
75
	\$config['aliases']['alias'] = array();
76
\$a_aliases = &\$config['aliases']['alias'];
77

  
78
foreach (\$a_aliases as \$n => \$alias) {
79
    if (\$alias['name'] == 'whitelist') {
80
        \$whitelist = &\$a_aliases[\$n];
81
        break;
82
    }
83
}
84

  
85
\$whitelist['address'] = \$wladdresses;
86
\$whitelist['detail'] = '';
87
\$whitelist['descr'] = 'DO NOT MODIFY THIS LIST ! auto-updated @ ' . date('r');
88

  
89
if (write_config()) {
90
    filter_configure();
91
    exit(0);
92
} else {
93
    exit(1);
94
}
95

  
96
?>
97
EOPHP

Formats disponibles : Unified diff