#!/bin/bash # # Run once a week via cron, out of dak's crontab. set -e set -o pipefail set -u # ERR traps should be inherited from functions too. (And command # substitutions and subshells and whatnot, but for us the functions is # the important part here) set -E export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars . $SCRIPTVARS # Start logging NOW=`date "+%Y.%m.%d-%H:%M:%S"` LOGFILE="$logdir/weekly_${NOW}.log" exec > "$LOGFILE" 2>&1 cleanup() { echo "Cleanup" rm -f "$LOGFILE" } trap cleanup 0 ################################################################################ # Purge empty directories echo "Purging empty directories in $ftpdir/pool/" if [ ! -z "$(find $ftpdir/pool/ -type d -empty)" ]; then find $ftpdir/pool/ -type d -empty | xargs rmdir; fi # Do git cleanup stuff echo "Doing git stuff" cd /srv/ftp.debian.org/git/dak.git git gc --prune git update-server-info # now workaround a git bug not honoring the setup in logs/* # (fix in development, but until it reached backports.org.......) chmod -R g+w logs/ echo "Fixing symlinks in $ftpdir" symlinks -d -r $ftpdir echo "Finally, all is done, compressing logfile" exec > /dev/null 2>&1 bzip2 -9 "$LOGFILE" ################################################################################