]> git.decadent.org.uk Git - dak.git/blob - config/debian/cron.daily
cron.daily should have an own logfile
[dak.git] / config / debian / cron.daily
1 #! /bin/bash
2 #
3 # Run daily via cron, out of dak's crontab.
4
5 set -e
6 set -o pipefail
7 set -u
8 export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
9 . $SCRIPTVARS
10
11 # common functions are "outsourced"
12 . "${configdir}/common"
13
14 ################################################################################
15
16 TMPFILE=$( mktemp -p ${TMPDIR} )
17
18 function cleanup {
19     ERRVAL=$?
20     rm -f ${TMPFILE}
21     exit ${ERRVAL}
22 }
23 trap cleanup SIGHUP SIGINT SIGPIPE SIGTERM EXIT ERR
24
25 # log to dinstall's logfile instead of sending email
26 PROGRAM="cron.daily"
27 # Start logging
28 NOW=`date "+%Y.%m.%d-%H:%M:%S"`
29 LOGFILE="$logdir/daily_${NOW}.log"
30 exec >> "$LOGFILE" 2>&1
31
32 # get the latest list of wnpp bugs and their source packages
33 wget -q -O${TMPFILE} http://qa.debian.org/data/bts/wnpp_rm
34 chmod go+r ${TMPFILE}
35 mv ${TMPFILE} /srv/ftp-master.debian.org/scripts/masterfiles/wnpp_rm
36
37 # Push files over to security
38 # The key over there should have the following set for the ssh key:
39 #  command="/usr/bin/xzcat | /usr/bin/psql -f - -1 obscurity"
40 pg_dump -a -F p -t files | \
41             sed -e "s,^COPY files (,DELETE FROM external_files; COPY external_files (," | \
42             xz -3 | \
43             ssh -o BatchMode=yes -o ConnectTimeout=30 -o SetupTimeout=30 -2 \
44                 -i ${base}/s3kr1t/push_external_files dak@security-master.debian.org sync
45
46 # Update wanna-build dump
47 echo "Update wanna-build database dump"
48 $base/dak/scripts/nfu/get-w-b-db
49
50 reports
51
52 clean_debbugs
53
54 # Generate list of override disparities
55 dak override-disparity | gzip -9 > ${webdir}/override-disparity.gz
56
57 # Generate stats about the new queue
58 dak stats new ${webdir}/NEW-stats.yaml 2> /dev/null
59
60 # Generate the contributor data
61 # FIXME: In a day or three, when this worked from cron without
62 # failure, redirect its output to dev/null. Alternatively until then
63 # enrico added a --quiet and we use that.
64 dc-tool --mine="${configdir}/contributor.source" --auth-token @"${base}/s3kr1t/contributor.auth" --source ftp.debian.org --post
65
66 ${scriptsdir}/link_morgue.sh
67
68 ################################################################################
69
70 echo "Finally, all is done, compressing logfile"
71 exec > /dev/null 2>&1
72
73 bzip2 -9 "$LOGFILE"