cvsup
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #!/bin/bash
  2. #
  3. # $Id: cvsup,v 1.8 2004/06/07 18:39:29 rstory Exp $
  4. #
  5. export CVS_RSH=ssh
  6. TAG=
  7. WO=0
  8. DEST=
  9. if [ "x$1" = "x-u" ]; then
  10.     DEST=$2
  11.     shift 2
  12. fi
  13. if [ $# -eq 0 ]; then
  14.     DIR=$PWD
  15. else
  16.     if [ $# -ne 1 ]; then
  17.         echo "usage: $0 <working directory>"
  18.         exit
  19.     fi
  20.     DIR=$1
  21. fi
  22. if [ -z ${DIR##*/} ];then
  23.    DIR=${DIR%/*}
  24. fi
  25. SUBD=${DIR##*/}
  26. PARENT=${DIR%*$SUBD}
  27. #echo "$DIR = $PARENT + $SUBD"
  28. if [ ! -d $DIR ]; then
  29.     echo "no such directory '$DIR'"
  30.     exit
  31. fi
  32. if [ ! -d $DIR/CVS ]; then
  33.     echo "'$DIR' has no CVS directory!"
  34.     exit
  35. fi
  36. if [ ! -f $DIR/CVS/Repository ]; then
  37.     echo "'$DIR' has no CVS/Repository!"
  38.     exit
  39. fi
  40. if [ ! -f $DIR/CVS/Root ]; then
  41.     echo "'$DIR' has no CVS/Root!"
  42.     exit
  43. fi
  44. if [ -f $DIR/CVS/Tag ]; then
  45.     TAG=`cat $DIR/CVS/Tag | cut -c 2-`
  46.     CMDTAG="-r $TAG"
  47. fi
  48. REP="`cat $DIR/CVS/Repository`"
  49. ROOT="`cat $DIR/CVS/Root`"
  50. cd $DIR
  51. #echo $PWD
  52. #    COMMAND="cvs -q -z3 -d $ROOT co $TAG -d $DIR $REP"
  53. COMMAND="cvs -q -z3 -d $ROOT update -P -d $CMDTAG"
  54. if [ ! -w $DIR/CVS ]; then
  55.     if [ -O $DIR/CVS ]; then
  56.         WO=1
  57.         echo "Making $DIR writable"
  58.         chmod -R u+w $DIR
  59.     fi
  60. fi
  61. echo "Updating directory $DIR with $TAG $REP..."
  62. echo "$COMMAND"
  63. $COMMAND
  64. rc=$?
  65. if [ $rc -ne 0 ]; then
  66.     echo "cvs command returned $?"
  67. fi
  68. if [ $WO -eq 1 ]; then
  69.     echo "Making $DIR read-only"
  70.     chmod -R a-w $DIR
  71. fi
  72. if [ ! -z $DEST ]; then
  73.     if [ -z $TAG ]; then
  74.         TAG=MAIN
  75.     fi
  76.   if [ $rc -ne 0 ]; then
  77.     echo "skipping upload"
  78.   else
  79.     cd ..
  80. #    echo $PWD
  81.     DATE=`date +%Y%m%d_%H%M`
  82.     SOURCE=$REP-cvs-$TAG"_$DATE"
  83.     tar cf /tmp/$SOURCE.tar $SUBD
  84.     gzip -f --best /tmp/$SOURCE.tar
  85.     scp /tmp/$SOURCE.tar.gz $DEST
  86.     rm -f /tmp/$SOURCE.tar.gz
  87.   fi
  88. fi