-
Notifications
You must be signed in to change notification settings - Fork 1
/
bumpversion.sh
67 lines (54 loc) · 1.93 KB
/
bumpversion.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#! /bin/bash
VERSION=`grep AC_INIT < configure.ac | awk -F',' '{print $2}'`
FIRST=`echo $VERSION | awk -F'.' '{print $1}'`
SECOND=`echo $VERSION | awk -F'.' '{print $2}'`
THIRD=`echo $VERSION | awk -F'.' '{print $3}'`
NEXTTHIRD=`expr ${THIRD} + 1`
export [email protected]
export DEBFULLNAME="German Tischler"
function cleanup
{
if [ ! -z "${COMMITFILE}" ] ; then
if [ -f "${COMMITFILE}" ] ; then
rm -f "${COMMITFILE}"
fi
fi
}
COMMITFILE=commit_msg_$$.txt
trap cleanup EXIT SIGINT SIGTERM
# make sure we have the latest version
git pull
# create commit log message
joe "${COMMITFILE}"
if [ ! -s "${COMMITFILE}" ] ; then
echo "Empty commit log, aborting"
exit 1
fi
# update to next minor version
awk -v first=${FIRST} -v second=${SECOND} -v third=${THIRD} '/^AC_INIT/ {gsub(first"."second"."third,first"."second"."third+1);print} ; !/^AC_INIT/{print}' < configure.ac > configure.ac.tmp
mv configure.ac.tmp configure.ac
# update change log
CHANGELOG=ChangeLog dch --distribution unstable -v ${FIRST}.${SECOND}.${NEXTTHIRD}-1
# commit files
git add configure.ac ChangeLog
git commit -F "${COMMITFILE}"
git push
TAG=daccord_${FIRST}_${SECOND}_${NEXTTHIRD}
git tag -a ${TAG} -m "daccord version ${FIRST}_${SECOND}_${NEXTTHIRD}"
git push origin ${TAG}
git checkout master
VERSION=`grep <configure.ac "AC_INIT" | perl -p -e "s/.*AC_INIT\(//" | awk -F ',' '{print $2}'`
DATE=`date +"%Y%m%d%H%M%S"`
RELEASE=${VERSION}-release-${DATE}
git checkout -b ${RELEASE}-branch master
autoreconf -i -f
ADDFILES="INSTALL Makefile.in aclocal.m4 autom4te.cache compile config.guess config.h.in config.sub configure depcomp install-sh ltmain.sh m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4 missing src/Makefile.in"
mv .gitignore .gitignore_
git add ${ADDFILES}
git commit -m "Release ${RELEASE}"
mv .gitignore_ .gitignore
git tag ${RELEASE}
git push origin ${RELEASE}
git checkout master
git branch -D ${RELEASE}-branch
exit 0