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