commitHelper 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #!/bin/bash
  2. if [ "$1" == "--syncgtk2" ]; then
  3. shift
  4. echo -n "sync with EXTRA_VERSION ? [xx] "
  5. read newmicro
  6. cat configure.ac | sed "s/^EXTRA_VERSION=.*/EXTRA_VERSION=$newmicro/" > configure.ac.new \
  7. && mv configure.ac.new configure.ac ;
  8. cat configure.ac | sed "s/^EXTRA_GTK2_VERSION=.*/EXTRA_GTK2_VERSION=.0/" > configure.ac.new \
  9. && mv configure.ac.new configure.ac ;
  10. fi;
  11. args=`echo $@`
  12. head -n 16 configure.ac | grep VERSION= > /tmp/commitTool.tmp
  13. source /tmp/commitTool.tmp
  14. if [ -z "$EXTRA_GTK2_VERSION" ]; then
  15. EXTRA_VERSION=`echo $EXTRA_VERSION | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
  16. nextsversion="${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}"
  17. nextextra="$EXTRA_VERSION"
  18. nextextratype="head"
  19. else
  20. EXTRA_GTK2_VERSION=`echo $EXTRA_GTK2_VERSION | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
  21. nextsversion="${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}${EXTRA_GTK2_VERSION}"
  22. nextextra="$EXTRA_GTK2_VERSION"
  23. nextextratype="gtk2"
  24. fi
  25. rm /tmp/commitTool.tmp
  26. IFS='
  27. '
  28. filelist=`cvs status $@ configure.ac 2>/dev/null |grep ^File`
  29. for file in $filelist; do
  30. merge=`echo $file | grep Merge`
  31. modif=`echo $file | grep Locally`
  32. if [ "$merge" != "" ]; then
  33. echo $merge
  34. echo You have to update first
  35. exit
  36. fi;
  37. if [ "$modif" != "" ]; then
  38. echo $modif
  39. fi;
  40. done;
  41. patchset="("
  42. log=""
  43. files=`cvs diff -uN $@ 2>/dev/null |grep ^Index`
  44. name=`whoami`
  45. #change if your login isn't your name
  46. if [ "$name" == "claws" ]; then
  47. name="paul";
  48. fi;
  49. if [ "$name" == "reboot" ]; then
  50. name="christoph";
  51. fi;
  52. if [ "$name" == "leroyc" ]; then
  53. name="colin";
  54. fi;
  55. if [ "$name" == "torte" ]; then
  56. name="thorsten";
  57. fi;
  58. log="`date --utc +%Y-%m-%d` [$name]\t$nextsversion\n\n"
  59. for line in $files; do
  60. file=`echo $line | cut -d' ' -f2`
  61. dir=`dirname $file`
  62. filename=`basename $file`
  63. cvsfile="$dir/CVS/Entries"
  64. version=`grep "\/$filename\/" $cvsfile | cut -d'/' -f3`
  65. nextversion=`echo $version | awk -F'.' '{for (i=1;i<NF;i++){printf $i"."};printf $NF+1}'`
  66. log="$log\t* $file\n"
  67. patchset="$patchset cvs diff -u -r $version -r $nextversion $file;\
  68. "
  69. done;
  70. patchset="$patchset ) > $nextsversion.patchset"
  71. if [ "$EDITOR" == "" ]; then
  72. EDITOR=vi
  73. fi;
  74. echo -e "#please complete the changelog entry below" > /tmp/logentry
  75. echo -e -n $log >> /tmp/logentry
  76. $EDITOR /tmp/logentry
  77. echo "--8<----------"
  78. grep -v "^#" /tmp/logentry > /tmp/log.tmp.$$ \
  79. && mv /tmp/log.tmp.$$ /tmp/logentry
  80. echo >> /tmp/logentry
  81. cat /tmp/logentry
  82. echo "--8<----------"
  83. if [ -f ChangeLog-gtk2.claws ]; then
  84. chlog="ChangeLog-gtk2.claws"
  85. elif [ -f ChangeLog.claws ]; then
  86. chlog="ChangeLog.claws"
  87. else
  88. chlog="ChangeLog"
  89. fi
  90. echo -n "Is it ok (write to $chlog and update configure.ac) [y/N]?"
  91. read ans
  92. if [ "$ans" == "y" ]; then
  93. mv $chlog $chlog.old
  94. cat /tmp/logentry > $chlog
  95. cat $chlog.old >> $chlog
  96. rm $chlog.old
  97. if [ "$nextextratype" == "head" ]; then
  98. cat configure.ac | sed "s/^EXTRA_VERSION=.*/EXTRA_VERSION=$nextextra/" > configure.ac.new \
  99. && mv configure.ac.new configure.ac ;
  100. else
  101. cat configure.ac | sed "s/^EXTRA_GTK2_VERSION=.*/EXTRA_GTK2_VERSION=$nextextra/" > configure.ac.new \
  102. && mv configure.ac.new configure.ac ;
  103. fi;
  104. echo "$patchset" >> PATCHSETS
  105. if [ "$args" != "" ]; then
  106. echo commiting $@ PATCHSETS $chlog configure.ac
  107. cvs commit -m "`cat /tmp/logentry`" $@ PATCHSETS $chlog configure.ac
  108. else
  109. echo commiting recursively
  110. cvs commit -m "`cat /tmp/logentry` "
  111. fi;
  112. rm -f /tmp/logentry
  113. fi