#!/bin/sh # # $Id: cvsup 15788 2007-01-24 13:49:38Z dts12 $ # TAG= WO=0 DEST= TMPDIR=/tmp if [ "x$1" = "x-u" ]; then DEST=$2 shift 2 # gnu tar (as of 1.15.1) is unable to create portable tar archives, # especially if long file names (>100 char) are present. # star is a better replacement. if [ -x /usr/bin/star ]; then TAR='/usr/bin/star -Hustar -not -pat=*/.svn/* -c -f' elif [ -x /bin/tar ]; then TAR="/bin/tar --exclude=.svn -c -f" echo "warning: star not available, using (less portable) tar..." else echo "neither /usr/bin/star nor /bin/tar found." exit fi fi if [ $# -eq 0 ]; then DIR=$PWD else if [ $# -ne 1 ]; then echo "usage: $0 " exit fi DIR=$1 fi if [ -z ${DIR##*/} ];then DIR=${DIR%/*} fi SUBD=${DIR##*/} PARENT=${DIR%*$SUBD} #echo "$DIR = $PARENT + $SUBD" if [ ! -d $DIR ]; then echo "no such directory '$DIR'" exit fi if [ ! -d $DIR/.svn ]; then echo "'$DIR' has no .svn directory!" exit fi if [ ! -f $DIR/.svn/entries ]; then echo "'$DIR' has no .svn/entries!" exit fi SVNURL=`svn info $DIR| grep URL|cut -f2 -d " "` SVNTLD=`echo $SVNURL | sed 's:.*svnroot/net-snmp/\([^/]*\).*:\1:'` if [ "x$SVNTLD" = "xtrunk" ]; then TAG="main" else TAG=`echo $SVNURL | sed 's:.*svnroot/net-snmp/[^/]*/\([^/]*\).*:\1:'` fi if [ ! -z $DEST ]; then if [ -z $TAG ]; then echo "no TAG found in $DIR!" exit 1 fi fi COMMAND="svn update -q $SVNURL $DIR" if [ ! -w $DIR/.svn ]; then if [ -O $DIR/.svn ]; then WO=1 echo "Making $DIR writable" chmod -R u+w $DIR fi fi echo "Updating directory $DIR from $TAG..." echo "$COMMAND" $COMMAND rc=$? if [ $rc -ne 0 ]; then echo "svn command returned $?" fi if [ $WO -eq 1 ]; then echo "Making $DIR read-only" chmod -R a-w $DIR fi if [ ! -z $DEST ]; then if [ $rc -ne 0 ]; then echo "skipping upload due to rc $rc from svn command" exit $rc else cd $DIR/.. #echo $PWD DATE=`date +%Y%m%d_%H%M` SOURCE=net-snmp-svn-$TAG"_$DATE" $TAR $TMPDIR/$SOURCE.tar $SUBD rc=$? if [ $rc -ne 0 ]; then echo "skipping upload due to rc $rc from tar command" rm -f $TMPDIR/$SOURCE.tar.gz exit $rc fi gzip -f --best $TMPDIR/$SOURCE.tar rc=$? if [ $rc -ne 0 ]; then echo "skipping upload due to rc $rc from gzip command" rm -f $TMPDIR/$SOURCE.tar.gz exit $rc fi scp $TMPDIR/$SOURCE.tar.gz $DEST rc=$? if [ $rc -ne 0 ]; then echo "warning: rc $rc from scp command (tarball in $TMPDIR)" else rm -f $TMPDIR/$SOURCE.tar.gz fi fi fi