#!/bin/sh # POST-COMMIT HOOK # # Arguments: # [1] REPOS-PATH (the path to this repository) # [2] REV (the number of the revision just committed) # # Define names for the arguments. REPOS="$1" REV="$2" # Quattor server name #QUATTORSRV="super.lal.in2p3.fr" QUATTORSRV="quattorsrv.lal.in2p3.fr" # Script on Quattor server to deploy new configuration DEPLOYSCRIPT=/root/quattor/scripts/build-tag.pl # Full paths to commands. # Standard machine. #MAILER="mail" #SVNLOOK="/usr/bin/svnlook" #SSH="/usr/bin/ssh" # Tru64. MAILER="mailx" SVNLOOK="/usr/local/subversion/pro/bin/svnlook" SSH="/usr/local/openssh/pro/bin/ssh" # Recipients of status mail and location for checkout. NOTIFY="quattor-mgrs@lal.in2p3.fr" # The local directory and places to write the log. DIR=`dirname $0` LOG="/tmp/svn-commit-output-$REV.log" # Determine if this is an eligible tag. MATCH=`$SVNLOOK diff --revision $REV $REPOS | grep -E '.*Copied:[[:space:]]*tags\/([[:digit:]\.]+).*trunk.*'` DEPLOY=$? echo "MATCH=$MATCH" > $LOG echo "DEPLOY=$DEPLOY" >> $LOG if [ $DEPLOY -eq 0 ]; then TAG=`echo $MATCH | sed 's/.*Copied:[[:space:]]*tags\/\([[:digit:]\.]*\).*trunk.*/\1/'` echo "TAG=$TAG" >> $LOG echo $SSH root@${QUATTORSRV} $DEPLOYSCRIPT $TAG >> $LOG $SSH root@${QUATTORSRV} $DEPLOYSCRIPT $TAG 2>&1 >> $LOG RC=$? if [ $RC -ne 0 ]; then STATUS="FAILURE" cat $LOG | $MAILER -s "[LAL-CFG] $STATUS $RC $REPOS $REV" $NOTIFY else STATUS="SUCCESS" fi # cat $LOG | $MAILER -s "[LAL-CFG] $STATUS $RC $REPOS $REV" $NOTIFY fi rm -f $LOG