]> git.decadent.org.uk Git - dak.git/blob - config/debian-security/cron.buildd
67094c768651fb7674014c4ee29f73e0a68b7dbc
[dak.git] / config / debian-security / cron.buildd
1 #! /bin/bash
2 #
3 # Executed after cron.unchecked
4
5 set -e
6 set -o pipefail
7 set -u
8
9 export SCRIPTVARS=/srv/security-master.debian.org/dak/config/debian-security/vars
10 . $SCRIPTVARS
11 SSH_SOCKET=~/.ssh/buildd.debian.org.socket
12 DISTS="stable testing"
13
14 if [ -e $ftpdir/Archive_Maintenance_In_Progress ]; then
15     exit 0
16 fi
17
18 dists=
19 now=$(date +%s)
20 check=$(( now - 3*60 ))
21
22 for dist in $DISTS; do
23     smodtime=$(stat -c "%Y" $base/build-queues/dists/buildd-$dist/updates/*/source/Sources.gz | sort -n | tail -1)
24     pmodtime=$(stat -c "%Y" $base/build-queues/dists/buildd-$dist/updates/*/binary-*/Packages.gz | sort -n | tail -1)
25
26     if [ ${smodtime} -gt ${check} ] || [ ${pmodtime} -gt ${check} ]; then
27         # Packages/Sources changed in the last minutes
28         dists="${dists} ${dist}"
29     else
30         continue
31     fi
32 done
33
34 if [ ! -z "${dists}" ]; then
35     # setup ssh master process
36     ssh wbadm@buildd -S $SSH_SOCKET -MN 2> /dev/null &
37     SSH_PID=$!
38     while [ ! -S $SSH_SOCKET ]; do
39         sleep 1
40     done
41     trap 'kill -TERM $SSH_PID' 0
42     for d in ${dists}; do
43         case ${d} in
44             oldstable)
45                 send=squeeze
46                 ;;
47             stable)
48                 send=wheezy
49                 ;;
50             testing)
51                 send=jessie
52                 ;;
53             *)
54                 send=unknown
55                 ;;
56         esac
57
58         ssh wbadm@buildd -S $SSH_SOCKET trigger.security $send
59     done
60 fi