Home | History | Annotate | Line # | Download | only in maintainer-scripts
      1   1.1  mrg #!/bin/sh
      2   1.1  mrg #
      3   1.1  mrg # Update the current version date in all files in the tree containing
      4   1.1  mrg # it.  Consider all release branches except those matching the regular
      5   1.1  mrg # expression in $IGNORE_BRANCHES, and also consider those branches listed
      6   1.1  mrg # in the space separated list in $ADD_BRANCHES.
      7   1.1  mrg 
      8   1.1  mrg SVNROOT=${SVNROOT:-"file:///svn/gcc"}
      9  1.10  mrg IGNORE_BRANCHES='gcc-(2_95|3_0|3_1|3_2|3_3|3_4|4_0|4_1|4_2|4_3|4_4|4_5|4_6|4_7|4_8|4_9|5|6)-branch'
     10   1.1  mrg ADD_BRANCHES='HEAD'
     11   1.1  mrg 
     12   1.1  mrg # Run this from /tmp.
     13   1.1  mrg export SVNROOT
     14   1.1  mrg /bin/rm -rf /tmp/$$
     15   1.1  mrg /bin/mkdir /tmp/$$
     16   1.1  mrg cd /tmp/$$
     17   1.1  mrg 
     18   1.1  mrg SVN=${SVN:-/usr/bin/svn}
     19   1.1  mrg 
     20   1.1  mrg # Compute the branches which we should update.
     21   1.1  mrg BRANCHES=`$SVN ls $SVNROOT/branches \
     22   1.1  mrg 	  | sed -e 's/\///' \
     23   1.6  mrg           | egrep 'gcc-[0-9]+(_[0-9]+)?-branch$' \
     24   1.1  mrg           | egrep -v $IGNORE_BRANCHES`
     25   1.1  mrg # Always update the mainline.
     26   1.1  mrg BRANCHES="${BRANCHES} ${ADD_BRANCHES}"
     27   1.1  mrg 
     28   1.3  mrg # This is put into the datestamp files.
     29   1.1  mrg CURR_DATE=`/bin/date +"%Y%m%d"`
     30   1.1  mrg 
     31   1.1  mrg datestamp_FILES="gcc/DATESTAMP"
     32   1.1  mrg 
     33   1.1  mrg 
     34   1.1  mrg # Assume all will go well.
     35   1.1  mrg RESULT=0
     36   1.1  mrg for BRANCH in $BRANCHES; do
     37   1.1  mrg   echo "Working on \"$BRANCH\"."
     38   1.3  mrg   # Check out the files on the branch.  HEAD is in a different namespace.
     39   1.1  mrg   if test "$BRANCH" = HEAD; then 
     40   1.3  mrg     SVNROOT2=${SVNROOT}/trunk
     41   1.3  mrg   else    
     42   1.3  mrg     SVNROOT2=${SVNROOT}/branches/${BRANCH}
     43   1.1  mrg   fi
     44   1.1  mrg 
     45   1.3  mrg   for i in $datestamp_FILES; do
     46   1.3  mrg     ${SVN} -q co -N ${SVNROOT2}/`dirname $i` `basename $i`
     47   1.3  mrg   done
     48   1.3  mrg 
     49   1.1  mrg   # There are no files to commit yet.
     50   1.1  mrg   COMMIT_FILES=""
     51   1.1  mrg 
     52   1.1  mrg   for file in $datestamp_FILES; do
     53   1.1  mrg     dirname=`basename $file`
     54   1.1  mrg     file=`basename $file`
     55   1.1  mrg     file="$dirname/$file"
     56   1.1  mrg     if test -f $file; then
     57   1.1  mrg       echo ${CURR_DATE} > $file.new
     58   1.1  mrg 
     59   1.1  mrg       if /usr/bin/cmp -s $file $file.new; then
     60   1.1  mrg 	rm -f $file.new
     61   1.1  mrg       else
     62   1.1  mrg 	mv -f $file.new $file
     63   1.1  mrg         COMMIT_FILES="$COMMIT_FILES $file"
     64   1.1  mrg       fi
     65   1.1  mrg     fi
     66   1.1  mrg   done
     67   1.1  mrg 
     68   1.1  mrg   if test -n "$COMMIT_FILES"; then
     69   1.1  mrg     for i in $COMMIT_FILES; do
     70   1.1  mrg     echo "Attempting to commit $i"
     71   1.1  mrg     if ! ${SVN} commit -m "Daily bump." $i; then
     72   1.1  mrg        # If we could not commit the files, indicate failure.
     73   1.1  mrg        RESULT=1
     74   1.1  mrg      fi
     75   1.1  mrg     done
     76   1.1  mrg   fi
     77   1.1  mrg   
     78   1.1  mrg   # Remove the files.
     79   1.3  mrg   for i in $datestamp_FILES; do
     80   1.1  mrg    rm -rf /tmp/$$/`basename $i`
     81   1.1  mrg   done
     82   1.1  mrg done
     83   1.1  mrg 
     84   1.1  mrg /bin/rm -rf /tmp/$$
     85   1.1  mrg exit $RESULT
     86