#!/bin/bash # Cron script for "release". See "backend/nitemc/crontab.txt" RSYNC_DIR="/usr/local/spamassassin/automc/rsync/tagged_builds" REPO_URL="http://svn.apache.org/repos/asf/spamassassin/trunk" PERL=/usr/bin/perl SVN=/usr/bin/svn type="$1" versfile="$2" if [ -z "$type" ]; then echo "Type not specified" >&2 exit 1 fi if [ ! -f $versfile ]; then echo "Version file not specified" >&2 exit 1 fi subdir=${type}_mass_check echo "Type: $type" echo "Version File: $versfile" echo "Subdir: $subdir" REV=`tail -1 $versfile | awk '{print $2}'` echo "Revision: $REV" set -ex for retry in 1 2 3 4 5 6 7 8 9 10 ; do # sleep on retries if [ $retry -gt 1 ]; then sleep 60; fi # export the main repo: (through a temporary dir) rm -rf $RSYNC_DIR/${subdir}.tmp mkdir $RSYNC_DIR/${subdir}.tmp || continue $SVN export --non-interactive --force -r $REV $REPO_URL $RSYNC_DIR/${subdir}.tmp/ \ || continue cd $RSYNC_DIR/${subdir}.tmp $PERL build/mkrules --out rules > /dev/null || continue # create "svn info" file for mass-check $SVN info $REPO_URL > masses/svninfo.tmp < /dev/null || continue cd $RSYNC_DIR # Success, only now install directory in place rm -rf $RSYNC_DIR/${subdir}.old && mv -f $RSYNC_DIR/${subdir} $RSYNC_DIR/${subdir}.old && mv -f $RSYNC_DIR/${subdir}.tmp $RSYNC_DIR/${subdir} && exit done echo "FAILED to extract to rsync dir" 1>&2 exit 2