123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #!/bin/bash
- if [ "$1" == "--sync" ]; then
- shift
- echo -n "sync with EXTRA_VERSION ? [xx] "
- read newmicro
- if [ -n "$newmicro" ]; then
- cat configure.ac | sed "s/^EXTRA_VERSION=.*/EXTRA_VERSION=$newmicro/" > configure.ac.new \
- && mv configure.ac.new configure.ac ;
- fi;
- cat configure.ac | sed "s/^EXTRA_WIN32_VERSION=.*/EXTRA_WIN32_VERSION=.0/" > configure.ac.new \
- && mv configure.ac.new configure.ac ;
- fi;
- args=`echo $@`
- head -n 18 configure.ac | grep VERSION= > /tmp/commitTool.tmp
- source /tmp/commitTool.tmp
- if [ -z "$EXTRA_WIN32_VERSION" ]; then
- EXTRA_VERSION=`echo $EXTRA_VERSION | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
- nextsversion="${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}${EXTRA_GTK2_VERSION}"
- nextextra="$EXTRA_VERSION"
- nextextratype="head"
- else
- EXTRA_WIN32_VERSION=`echo $EXTRA_WIN32_VERSION | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
- nextsversion="${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}${EXTRA_GTK2_VERSION}${EXTRA_WIN32_VERSION}"
- nextextra="$EXTRA_WIN32_VERSION"
- nextextratype="win32"
- fi
- rm /tmp/commitTool.tmp
- IFS='
- '
- filelist=`cvs status $@ configure.ac 2>/dev/null |grep ^File`
- for file in $filelist; do
- merge=`echo $file | grep Merge`
- modif=`echo $file | grep Locally`
- if [ "$merge" != "" ]; then
- echo $merge
- echo You have to update first
- exit
- fi;
- if [ "$modif" != "" ]; then
- echo $modif
- fi;
- done;
- patchset="("
- log=""
- files=`cvs diff -uN $@ 2>/dev/null |grep ^Index`
- name=`whoami`
- #change if your login isn't your name
- if [ "$name" == "claws" ]; then
- name="paul";
- fi;
- if [ "$name" == "reboot" ]; then
- name="christoph";
- fi;
- if [ "$name" == "leroyc" ]; then
- name="colin";
- fi;
- if [ "$name" == "torte" ]; then
- name="thorsten";
- fi;
- log="`date --utc +%Y-%m-%d` [$name]\t$nextsversion\n\n"
- for line in $files; do
- file=`echo $line | cut -d' ' -f2`
- dir=`dirname $file`
- filename=`basename $file`
- cvsfile="$dir/CVS/Entries"
- version=`grep "\/$filename\/" $cvsfile | cut -d'/' -f3`
- nextversion=`echo $version | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
-
- log="$log\t* $file\n"
- patchset="$patchset cvs diff -u -r $version -r $nextversion $file;\
- "
- done;
- patchset="$patchset ) > $nextsversion.patchset"
- if [ "$EDITOR" == "" ]; then
- EDITOR=vi
- fi;
- echo -e "#please complete the changelog entry below" > /tmp/logentry
- echo -e -n $log >> /tmp/logentry
- $EDITOR /tmp/logentry
- echo "--8<----------"
- grep -v "^#" /tmp/logentry > /tmp/log.tmp.$$ \
- && mv /tmp/log.tmp.$$ /tmp/logentry
- echo >> /tmp/logentry
- cat /tmp/logentry
- echo "--8<----------"
- if [ -f ChangeLog.claws.w32 ]; then
- chlog="ChangeLog.claws.w32"
- elif [ -f ChangeLog.claws ]; then
- chlog="ChangeLog.claws"
- else
- chlog="ChangeLog"
- fi
- echo -n "Is it ok (write to $chlog and update configure.ac) [y/N]?"
- read ans
- if [ "$ans" == "y" ]; then
- mv $chlog $chlog.old
- cat /tmp/logentry > $chlog
- cat $chlog.old >> $chlog
- rm $chlog.old
- if [ "$nextextratype" == "head" ]; then
- cat configure.ac | sed "s/^EXTRA_VERSION=.*/EXTRA_VERSION=$nextextra/" > configure.ac.new \
- && mv configure.ac.new configure.ac ;
- else
- cat configure.ac | sed "s/^EXTRA_WIN32_VERSION=.*/EXTRA_WIN32_VERSION=$nextextra/" > configure.ac.new \
- && mv configure.ac.new configure.ac ;
- fi;
-
- echo "$patchset" >> PATCHSETS.w32
- if [ "$args" != "" ]; then
- echo commiting $@ PATCHSETS.w32 $chlog configure.ac
- cvs commit -F /tmp/logentry $@ PATCHSETS.w32 $chlog configure.ac
- else
- echo commiting recursively
- cvs commit -F /tmp/logentry
- fi;
- rm -f /tmp/logentry
- fi
|