]> git.decadent.org.uk Git - dak.git/blob - config/debian-security/cron.buildd
updated for new version
[dak.git] / config / debian-security / cron.buildd
1 #! /bin/bash
2 #
3 # Executed after cron.unchecked
4
5 set -e
6 set -u
7
8 export SCRIPTVARS=/srv/security-master.debian.org/dak/config/debian-security/vars
9 . $SCRIPTVARS
10 SSH_SOCKET=~/.ssh/buildd.debian.org.socket
11 DISTS=$(dak admin s list)
12
13 if [ -e $ftpdir/Archive_Maintenance_In_Progress ]; then
14         exit 0
15 fi
16
17 for dist in $DISTS; do
18         eval SOURCES_$dist=`stat -c "%Y" $base/buildd/$dist/Sources.gz`
19         eval PACKAGES_$dist=`stat -c "%Y" $base/buildd/$dist/Packages.gz`
20 done
21
22 cd $configdir
23 apt-ftparchive -qq -o APT::FTPArchive::Contents=off generate apt.conf.buildd
24
25 dists=
26
27
28 for dist in $DISTS; do
29         eval NEW_SOURCES_$dist=`stat -c "%Y" $base/buildd/$dist/Sources.gz`
30         eval NEW_PACKAGES_$dist=`stat -c "%Y" $base/buildd/$dist/Packages.gz`
31         old=SOURCES_$dist
32     new=NEW_$old
33     if [ ${!new} -gt ${!old} ]; then
34                 if [ -z "$dists" ]; then
35                         dists="$dist"
36                 else
37                         dists="$dists $dist"
38                 fi
39                 continue
40         fi
41         old=PACKAGES_$dist
42         new=NEW_$old
43     if [ ${!new} -gt ${!old} ]; then
44                 if [ -z "$dists" ]; then
45                         dists="$dist"
46                 else
47                         dists="$dists $dist"
48                 fi
49                 continue
50         fi
51 done
52
53 if [ ! -z "$dists" ]; then
54         # setup ssh master process
55         ssh wbadm@buildd -S $SSH_SOCKET -MN 2> /dev/null &
56         SSH_PID=$!
57         while [ ! -S $SSH_SOCKET ]; do
58                 sleep 1
59         done
60         trap 'kill -TERM $SSH_PID' 0
61         for d in $dists; do
62                 ssh wbadm@buildd -S $SSH_SOCKET trigger.security $d
63         done
64 fi