cron.hourly 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #! /bin/bash
  2. #
  3. # Executed hourly via cron, out of dak's crontab.
  4. set -e
  5. set -o pipefail
  6. set -u
  7. export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
  8. . $SCRIPTVARS
  9. PROGRAM="Hourly"
  10. ########################################################################
  11. # Functions #
  12. ########################################################################
  13. # common functions are "outsourced"
  14. . "${configdir}/common"
  15. dak import-users-from-passwd
  16. # do not run show-new and other stuff in parallel
  17. LOCKFILE="$lockdir/unchecked.lock"
  18. cleanup() {
  19. rm -f "${LOCKFILE}"
  20. }
  21. if lockfile -r16 $LOCKFILE 2> /dev/null; then
  22. trap cleanup EXIT
  23. do_new
  24. dak show-new > /dev/null || true
  25. cleanup
  26. trap - EXIT
  27. fi
  28. dak queue-report -n > $webdir/new.html
  29. dak queue-report -n -d backports-new,backports-policy > ${webdir}/backports-new.html
  30. dak queue-report -8 -d new,byhand,stable-new,oldstable-new,backports-new -r $webdir/stat
  31. sudo -u dak-unpriv dak show-deferred -r $webdir/stat > ${webdir}/deferred.html
  32. dak graph -n new,byhand,stable-new,oldstable-new,deferred -r $webdir/stat -i $webdir/stat -x $scriptsdir/rrd-release-freeze-dates
  33. cd $webdir
  34. cat removals-20*.txt > removals-full.txt
  35. cat removals.txt >> removals-full.txt
  36. cat removals-20*.822 > removals-full.822
  37. cat removals.822 >> removals-full.822
  38. $base/dak/tools/queue_rss.py -q $queuedir/new -o $webdir/rss/ -d $base/misc -l $base/log/
  39. $base/dak/tools/removals.pl $configdir/removalsrss.rc > $webdir/rss/removals.rss
  40. # cd $masterdir
  41. # 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
  42. # Tell the public mirror to sync its tree
  43. ${scriptsdir}/sync-dd dd-sync dd-sync1 dd-sync2 sync
  44. $scriptsdir/generate-d-i
  45. # Update backports ACL
  46. sudo -u dak-unpriv cat /srv/backports-master.debian.org/etc/acl \
  47. | dak acl set-fingerprints backports \
  48. | mail -a "X-Debian: DAK" -e -s "backports: acl changes" -a "From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>" backports-team@debian.org
  49. # do the buildd key updates
  50. BUILDDFUN=$(mktemp -p "${TMPDIR}" BUILDDFUN.XXXXXX)
  51. exec >> "${BUILDDFUN}" 2>&1
  52. ${scriptsdir}/buildd-remove-keys
  53. ${scriptsdir}/buildd-add-keys
  54. ${scriptsdir}/buildd-prepare-dir
  55. for keyring in $(dak admin k list-binary); do
  56. dak import-keyring --generate-users "%s" ${keyring}
  57. done
  58. exec >>/dev/null 2>&1
  59. DATE=$(date -Is)
  60. 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
  61. rm -f "${BUILDDFUN}"