Blame dist/svnup

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