]> git.decadent.org.uk Git - dak.git/blobdiff - config/debian/cron.hourly
cron.hourly locks itself
[dak.git] / config / debian / cron.hourly
index 21fe3b893cd25d39dcbd22967de0c112f19467e7..d2451b8a019b6a7854a584d46120c8dd84c00947 100755 (executable)
@@ -2,24 +2,45 @@
 #
 # Executed hourly via cron, out of dak's crontab.
 
+# Only one of me should ever run.
+[  "${FLOCKER}"  != "$0" ] && exec env FLOCKER="$0" flock -E 0 -en "$0" "$0"
+"$@" || :
+
 set -e
+set -o pipefail
 set -u
 
 export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
 . $SCRIPTVARS
 
+PROGRAM="Hourly"
+########################################################################
+# Functions                                                            #
+########################################################################
+# common functions are "outsourced"
+. "${configdir}/common"
+
 dak import-users-from-passwd
-dak queue-report -n > $webdir/new.html
-dak queue-report -8 -d new,byhand,proposedupdates,oldproposedupdates -r $webdir/stat
-#dak show-deferred -r $webdir/stat > ${webdir}/deferred.html
-#dak graph -n new,byhand,proposedupdates,oldproposedupdates,deferred -r $webdir/stat -i $webdir/stat -x $scriptsdir/rrd-release-freeze-dates
 
 # do not run show-new and other stuff in parallel
-#LOCKFILE="$lockdir/unchecked.lock"
-#if lockfile -r16 $LOCKFILE 2> /dev/null; then
-#    dak show-new > /dev/null
-#    rm -f $LOCKFILE
-#fi
+LOCKFILE="$lockdir/unchecked.lock"
+cleanup() {
+    rm -f "${LOCKFILE}"
+}
+
+if lockfile -r16 $LOCKFILE 2> /dev/null; then
+    trap cleanup EXIT
+    do_new
+    dak show-new > /dev/null || true
+    cleanup
+    trap - EXIT
+fi
+
+dak queue-report -n > $webdir/new.html
+dak queue-report -n -d backports-new,backports-policy > ${webdir}/backports-new.html
+dak queue-report -8 -d new,byhand,stable-new,oldstable-new,backports-new -r $webdir/stat
+sudo -u dak-unpriv dak show-deferred -r $webdir/stat > ${webdir}/deferred.html
+dak graph -n new,byhand,stable-new,oldstable-new,deferred -r $webdir/stat -i $webdir/stat -x $scriptsdir/rrd-release-freeze-dates
 
 cd $webdir
 cat removals-20*.txt > removals-full.txt
@@ -27,15 +48,21 @@ cat removals.txt >> removals-full.txt
 cat removals-20*.822 > removals-full.822
 cat removals.822 >> removals-full.822
 
-#$base/dak/tools/queue_rss.py -q $queuedir/new -o $webdir/rss/ -d $base/misc -l $base/log/
+$base/dak/tools/queue_rss.py -q $queuedir/new -o $webdir/rss/ -d $base/misc -l $base/log/
 $base/dak/tools/removals.pl $configdir/removalsrss.rc > $webdir/rss/removals.rss
 
+# cd $masterdir
+# timeout -k 180 120  /usr/bin/epydoc -q --html --graph all --css blue -n DAK -o $webdir/epydoc --include-log --graph all --show-imports $masterdir/dak/ $masterdir/dakweb/ || true
 
-# Tell ries to sync its tree
-ssh -o Batchmode=yes -o ConnectTimeout=30 -o SetupTimeout=30 -2 -i ${base}/s3kr1t/pushddmirror dak@ries.debian.org sync
+# Tell the public mirror to sync its tree
+${scriptsdir}/sync-dd dd-sync dd-sync1 dd-sync2 sync
 
-$scriptsdir/generate-di
+$scriptsdir/generate-d-i
 
+# Update backports ACL
+sudo -u dak-unpriv cat /srv/backports-master.debian.org/etc/acl \
+    | dak acl set-fingerprints backports \
+    | mail -a "X-Debian: DAK" -e -s "backports: acl changes" -a "From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>" backports-team@debian.org
 
 # do the buildd key updates
 BUILDDFUN=$(mktemp -p "${TMPDIR}" BUILDDFUN.XXXXXX)
@@ -50,6 +77,6 @@ done
 exec >>/dev/null 2>&1
 
 DATE=$(date -Is)
-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
+cat "${BUILDDFUN}" | mail -a "X-Debian: DAK" -e -s "[$(hostname -s)] Buildd key changes ${DATE}" -a "From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>" buildd-keys@ftp-master.debian.org
 
 rm -f "${BUILDDFUN}"