releaseversion.sh simplified to handle integer version numbers
[citadel.git] / releaseversion.sh
1 #!/bin/bash
2
3 if test "$1" = '?'; then
4
5         echo 'no help for the lost.'
6         exit
7 fi
8
9 if test "$1" = 'list'; then
10         echo "showing current release version state: "
11         echo "-------- libcitadel: --------"
12         grep AC_INIT libcitadel/configure.in
13         grep 'PACKAGE_VERSION=' libcitadel/configure
14         echo "  - Header version:"
15         grep LIBCITADEL_VERSION_NUMBER libcitadel/lib/libcitadel.h
16         head -n 5 libcitadel/debian/changelog
17         
18         echo "-------- citserver: --------"
19         grep 'PACKAGE_VERSION=' citadel/configure
20         grep '#define REV_LEVEL' citadel/citadel.h
21         grep '#define REV_MIN' citadel/citadel.h
22         grep '#define EXPORT_REV_MIN' citadel/citadel.h
23         grep '#define LIBCITADEL_MIN' citadel/citadel.h
24         head -n 5 citadel/debian/changelog
25
26         echo "-------- textclient: --------"
27         grep 'PACKAGE_VERSION=' textclient/configure
28         head -n 5 textclient/debian/changelog
29
30         echo "-------- webcit: --------"
31         grep 'PACKAGE_VERSION=' webcit/configure
32         grep '#define CLIENT_VERSION' webcit/webcit.h
33         grep '#define MINIMUM_CIT_VERSION' webcit/webcit.h
34         grep '#define LIBCITADEL_MIN' webcit/webcit.h
35         head -n 5 webcit/debian/changelog
36
37         exit
38 fi
39
40
41 if test "$1" = "revert"; then 
42         echo "reverting all changes for version files"
43         git checkout \
44         libcitadel/lib/libcitadel.h \
45         libcitadel/configure.in \
46         libcitadel/debian/changelog \
47         \
48         citadel/citadel.h \
49         citadel/configure.ac \
50         citadel/debian/changelog \
51         \
52         textclient/configure.ac \
53         textclient/debian/changelog \
54         \
55         webcit/webcit.h \
56         webcit/configure.ac \
57         webcit/debian/changelog
58
59         exit
60 fi 
61
62
63 NEW_VERSION=$1
64
65 if test -z "$NEW_VERSION" ; then
66         echo Need new version number
67         exit
68 fi
69
70 export LANG=C
71 RELEASEDATE=`date -R`
72
73
74 function DebChangeLog()
75 {
76         FILE=$1
77         PROJECT=$2
78         (
79         printf "${PROJECT} (${NEW_VERSION}-1) stable; urgency=low\n\n  * new release\n\n -- Wilfried Goesgens <w.goesgens@outgesourced.org>  ${RELEASEDATE}\n\n"
80         cat ${FILE}
81         ) > /tmp/${PROJECT}_changelog
82         rm -f ${FILE}
83         mv /tmp/${PROJECT}_changelog ${FILE}
84 }
85
86
87 ################################################################################
88 # libcitadel
89
90 DebChangeLog libcitadel/debian/changelog libcitadel
91
92 sed  -i -e "s;^#define LIBCITADEL_VERSION_NUMBER.*[0-9][0-9][0-9]\(.*\)$;#define LIBCITADEL_VERSION_NUMBER\t${NEW_VERSION}\1;g" \
93         libcitadel/lib/libcitadel.h
94
95 OLD_VERSION=`grep AC_INIT libcitadel/configure.in  |sed "s;.*\(....\), http.*;\1;"`
96
97 sed -i -e "s;${OLD_VERSION};${NEW_VERSION};" \
98         -e "s;^LIBREVISION=[0-9][0-9][0-9]\(.*\)$;LIBREVISION=${NEW_VERSION}\1;g" \
99         libcitadel/configure.in
100
101
102
103 ################################################################################
104 # citserver
105
106 DebChangeLog citadel/debian/changelog citadel
107
108 OLD_VERSION=`grep AC_INIT citadel/configure.ac  |sed "s;.*\[\(....\)\],.*;\1;"`
109
110 sed -i "s;${OLD_VERSION};${NEW_VERSION};" citadel/configure.ac
111
112 sed  -i -e "s;^#define REV_LEVEL.*[0-9][0-9][0-9]\(.*\)$;#define REV_LEVEL\t${NEW_VERSION}\1;g" \
113         -e "s;^#define LIBCITADEL_MIN.*[0-9][0-9][0-9]\(.*\)$;#define LIBCITADEL_MIN\t${NEW_VERSION}\1;g" \
114         citadel/citadel.h
115
116 ################################################################################
117 # textclient
118 DebChangeLog textclient/debian/changelog textclient
119 sed -i "s;${OLD_VERSION};${NEW_VERSION};" textclient/configure.ac
120
121
122
123 ################################################################################
124 # webcit
125 DebChangeLog webcit/debian/changelog webcit
126 sed -i "s;${OLD_VERSION};${NEW_VERSION};" webcit/configure.ac
127
128 sed  -i -e "s;^#define CLIENT_VERSION.*[0-9][0-9][0-9]\(.*\)$;#define CLIENT_VERSION\t\t${NEW_VERSION}\1;g" \
129         -e "s;^#define MINIMUM_CIT_VERSION.*[0-9][0-9][0-9]\(.*\)$;#define MINIMUM_CIT_VERSION\t${NEW_VERSION}\1;g" \
130         -e "s;^#define LIBCITADEL_MIN.*[0-9][0-9][0-9]\(.*\)$;#define LIBCITADEL_MIN\t${NEW_VERSION}\1;g" \
131         webcit/webcit.h
132
133