Sync with 0.9.12cvs30
[claws.git] / commitHelper
1 #!/bin/sh
2 head -16 configure.ac | grep VERSION= > /tmp/commitTool.tmp
3 source /tmp/commitTool.tmp
4 if [ -z "$EXTRA_GTK2_VERSION" ]; then
5         EXTRA_VERSION=`echo $EXTRA_VERSION | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
6         nextsversion="${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}"
7 else
8         EXTRA_GTK2_VERSION=`echo $EXTRA_GTK2_VERSION | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
9         nextsversion="${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}${EXTRA_GTK2_VERSION}"
10 fi
11 rm /tmp/commitTool.tmp
12
13 IFS='
14 '
15 filelist=`cvs status $@ 2>/dev/null |grep ^File`
16
17 for file in $filelist; do
18         merge=`echo $file | grep Merge`
19         modif=`echo $file | grep Locally`
20
21         if [ "$merge" != "" ]; then
22                 echo $merge
23                 echo You have to update first
24                 exit
25         fi;
26         if [ "$modif" != "" ]; then
27                 echo $modif
28         fi;
29 done;
30 patchset="("
31 log=""
32 files=`cvs diff -u $@ 2>/dev/null |grep ^Index`
33 echo "--8<----------"
34 name=`whoami`
35 #change if your login isn't your name
36 if [ "$name" == "claws" ]; then
37         name="paul";
38 fi;
39 log="`date +%Y-%m-%d` [$name]\t$nextsversion\n\n"
40 for line in $files; do
41         file=`echo $line | cut -d' ' -f2`
42         dir=`dirname $file`
43         filename=`basename $file`
44         cvsfile="$dir/CVS/Entries"
45         version=`grep "\/$filename\/" $cvsfile | cut -d'/' -f3`
46         nextversion=`echo $version | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
47         
48         log="$log\t* $file\n"
49         patchset="$patchset cvs diff -u -r $version -r $nextversion $file;\
50 "
51 done;
52 patchset="$patchset ) > $nextsversion.patchset"
53 log="$log\n"
54 echo -e -n $log
55 echo "--8<----------"
56 if [ -f ChangeLog-gtk2.claws ]; then
57         chlog="ChangeLog-gtk2.claws"
58 else
59         chlog="ChangeLog.claws"
60 fi
61 echo -n "Is it ok (write to $chlog) [y/N]?"
62 read ans
63 if [ "$ans" == "y" ]; then
64         mv $chlog $chlog.old
65         echo -e -n $log > $chlog
66         cat $chlog.old >> $chlog
67         rm $chlog.old
68         echo "$patchset" >> PATCHSETS
69         echo "editing $chlog configure.ac..."
70         if [ "$EDITOR" == "" ]; then
71                 EDITOR=vi
72         fi;
73         $EDITOR $chlog configure.ac
74         echo running cvs commit $@ PATCHSETS $chlog configure.ac
75         cvs commit $@ PATCHSETS $chlog configure.ac
76 fi