2010-01-08 [paul] 3.7.3cvs57
[claws.git] / commitHelper
blob4a9d6e7af86a361a1f80922346afb7bb37b82490
1 #!/bin/bash
2 args=`echo $@`
3 tmpfile=${0##*/}.tmp
5 head -n 16 configure.ac | grep VERSION= > $tmpfile
6 source $tmpfile
7 EXTRA_VERSION=`echo $EXTRA_VERSION | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
8 nextsversion="${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}"
9 nextextra="$EXTRA_VERSION"
10 nextextratype="head"
11 rm -f $tmpfile
13 IFS='
15 filelist=`cvs status $@ configure.ac 2>/dev/null |grep ^File`
17 for file in $filelist; do
18 merge=`echo $file | grep Merge`
19 modif=`echo $file | grep Locally`
20 patch=`echo $file | grep Patch`
21 if [ "$patch" != "" ]; then
22 echo $patch
23 echo You have to update first
24 exit
25 fi;
26 if [ "$merge" != "" ]; then
27 echo $merge
28 echo You have to update first
29 exit
30 fi;
31 if [ "$modif" != "" ]; then
32 echo $modif
33 fi;
34 done;
35 patchset="("
36 log=""
37 files=`cvs diff -uN $@ 2>$tmpfile |grep ^Index`
38 if [ "$files" == "" ]; then
39 echo Nothing to commit\!
40 if [ -s $tmpfile ]; then
41 echo See possible reason below:
42 cat $tmpfile
44 exit
46 rm -f $tmpfile
47 name=`whoami`
48 #change if your login isn't your name
49 if [ "$name" == "claws" ]; then
50 name="paul";
51 fi;
52 if [ "$name" == "leroyc" ]; then
53 name="colin";
54 fi;
55 if [ "$name" == "torte" ]; then
56 name="thorsten";
57 fi;
58 if [ "$name" == "dinh" ]; then
59 name="hoa";
60 fi;
61 if [ "$name" == "f" -o "$name" == "darkok" ]; then
62 name="darko";
63 fi;
64 if [ "$name" == "msp" ]; then
65 name="martin";
66 fi;
67 if [ "$name" == "devel" ]; then
68 name="mones";
69 fi;
70 if [ "$name" == "hb" ]; then
71 name="holger";
72 fi;
73 if [ "$name" == "salvatore" ]; then
74 name="iwkse";
75 fi;
77 if [ "$name" == "corn" ]; then
78 name="pawel";
79 fi;
81 log="`date -u +%Y-%m-%d` [$name]\t$nextsversion\n\n"
82 for line in $files; do
83 file=`echo $line | cut -d' ' -f2`
84 dir=`dirname $file`
85 filename=`basename $file`
86 cvsfile="$dir/CVS/Entries"
87 version=`grep "\/$filename\/" $cvsfile | cut -d'/' -f3`
88 nextversion=`echo $version | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
90 log="$log\t* $file\n"
91 if [ "$version" != "0" ]; then
92 patchset="$patchset cvs diff -u -r $version -r $nextversion $file; "
93 else
94 patchset="$patchset diff -u /dev/null $file; "
96 done;
97 patchset="$patchset ) > $nextsversion.patchset"
99 if [ "$CVSEDITOR" == "" ]; then
100 if [ "$EDITOR" == "" ]; then
101 if [ "$VISUAL" != "" ]; then
102 EDITOR=$VISUAL
103 else
104 EDITOR=vi
107 else
108 EDITOR=$CVSEDITOR
111 echo -e "#please complete the changelog entry below" > /tmp/logentry.$$
112 echo -e -n $log >> /tmp/logentry.$$
114 $EDITOR /tmp/logentry.$$
116 echo "--8<----------"
117 grep -v "^#" /tmp/logentry.$$ > /tmp/log.tmp.$$ \
118 && mv /tmp/log.tmp.$$ /tmp/logentry.$$
119 echo >> /tmp/logentry.$$
120 cat /tmp/logentry.$$
122 chlog="ChangeLog"
124 echo "--8<----------"
125 echo -n "Is it ok (write to $chlog and update configure.ac) [y/N]?"
126 read ans
127 if [ "$ans" == "y" ]; then
128 mv $chlog $chlog.old
129 cat /tmp/logentry.$$ > $chlog
130 cat $chlog.old >> $chlog
131 rm $chlog.old
133 cat configure.ac | sed "s/^EXTRA_VERSION=.*/EXTRA_VERSION=$nextextra/" > configure.ac.new \
134 && mv configure.ac.new configure.ac ;
136 echo "$patchset" >> PATCHSETS
138 if [ "$args" != "" ]; then
139 echo commiting $@ PATCHSETS $chlog configure.ac
140 cvs commit -m "`cat /tmp/logentry.$$`" $@ PATCHSETS $chlog configure.ac
141 else
142 echo commiting recursively
143 cvs commit -m "`cat /tmp/logentry.$$` "
145 rm -f /tmp/logentry.$$
146 wget -O /dev/null -o /dev/null http://www.colino.net/claws-mail/update.php