]> git.decadent.org.uk Git - dak.git/blob - config/debian/cron.hourly
config/debian/cron.hourly: remove unchecked lock on failure
[dak.git] / config / debian / cron.hourly
1 #! /bin/bash
2 #
3 # Executed hourly via cron, out of dak's crontab.
4
5 set -e
6 set -o pipefail
7 set -u
8
9 export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
10 . $SCRIPTVARS
11
12 PROGRAM="Hourly"
13 ########################################################################
14 # Functions                                                            #
15 ########################################################################
16 # common functions are "outsourced"
17 . "${configdir}/common"
18
19 dak import-users-from-passwd
20
21 # do not run show-new and other stuff in parallel
22 LOCKFILE="$lockdir/unchecked.lock"
23 cleanup() {
24     rm -f "${LOCKFILE}"
25 }
26
27 if lockfile -r16 $LOCKFILE 2> /dev/null; then
28     trap cleanup EXIT
29     do_new
30     dak show-new > /dev/null || true
31     cleanup
32     trap - EXIT
33 fi
34
35 dak queue-report -n > $webdir/new.html
36 dak queue-report -8 -d new,byhand,stable-new,oldstable-new -r $webdir/stat
37 dak show-deferred -r $webdir/stat > ${webdir}/deferred.html
38 dak graph -n new,byhand,stable-new,oldstable-new,deferred -r $webdir/stat -i $webdir/stat -x $scriptsdir/rrd-release-freeze-dates
39
40 cd $webdir
41 cat removals-20*.txt > removals-full.txt
42 cat removals.txt >> removals-full.txt
43 cat removals-20*.822 > removals-full.822
44 cat removals.822 >> removals-full.822
45
46 $base/dak/tools/queue_rss.py -q $queuedir/new -o $webdir/rss/ -d $base/misc -l $base/log/
47 $base/dak/tools/removals.pl $configdir/removalsrss.rc > $webdir/rss/removals.rss
48
49
50 # Tell ries to sync its tree
51 ${scriptsdir}/sync-dd ries-sync ries-sync1 ries-sync2 sync
52
53 $scriptsdir/generate-di
54
55 # Push files over to security
56 #pg_dump -a -F p -t files | sed -e "s,^COPY files (,DELETE FROM external_files; COPY external_files (," | xz -3 | \
57 #        ssh -o BatchMode=yes -o ConnectTimeout=30 -o SetupTimeout=30 -2 -i ${base}/s3kr1t/push-external_files dak@wherever sync
58 #
59 # The key should run the following command:
60 #        'xzcat | pg_restore -1 -a'
61
62 # do the buildd key updates
63 BUILDDFUN=$(mktemp -p "${TMPDIR}" BUILDDFUN.XXXXXX)
64 exec >> "${BUILDDFUN}" 2>&1
65 ${scriptsdir}/buildd-remove-keys
66 ${scriptsdir}/buildd-add-keys
67 ${scriptsdir}/buildd-prepare-dir
68
69 for keyring in $(dak admin k list-binary); do
70     dak import-keyring --generate-users "%s" ${keyring}
71 done
72 exec >>/dev/null 2>&1
73
74 DATE=$(date -Is)
75 cat "${BUILDDFUN}" | mail -a "X-Debian: DAK" -e -s "[$(hostname -s)] Buildd key changes ${DATE}" buildd-keys@ftp-master.debian.org -- -F "Debian FTP Masters" -f ftpmaster@ftp-master.debian.org
76
77 rm -f "${BUILDDFUN}"