citadel/configure.in extract version number from source code
[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 if test "$1" = "revert"; then 
41         echo "reverting all changes for version files"
42         git checkout \
43         libcitadel/lib/libcitadel.h \
44         libcitadel/configure.in \
45         libcitadel/debian/changelog \
46         \
47         citadel/citadel.h \
48         citadel/configure.ac \
49         citadel/debian/changelog \
50         \
51         textclient/configure.ac \
52         textclient/debian/changelog \
53         \
54         webcit/webcit.h \
55         webcit/configure.ac \
56         webcit/debian/changelog
57
58         exit
59 fi 
60
61
62 NEW_VERSION=$1
63
64 if test -z "$NEW_VERSION" ; then
65         echo Need new version number
66         exit
67 fi
68
69 export LANG=C
70 RELEASEDATE=`date -R`
71
72
73 function DebChangeLog()
74 {
75         FILE=$1
76         PROJECT=$2
77         (
78         printf "${PROJECT} (${NEW_VERSION}-1) stable; urgency=low\n\n  * new release\n\n -- Wilfried Goesgens <w.goesgens@outgesourced.org>  ${RELEASEDATE}\n\n"
79         cat ${FILE}
80         ) > /tmp/${PROJECT}_changelog
81         rm -f ${FILE}
82         mv /tmp/${PROJECT}_changelog ${FILE}
83 }
84
85
86 ################################################################################
87 # libcitadel
88
89 DebChangeLog libcitadel/debian/changelog libcitadel
90
91 sed -i -e \
92         "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 echo libcitadel OLD_VERSION is $OLD_VERSION
97
98 sed -i -e "s;${OLD_VERSION};${NEW_VERSION};" \
99         -e "s;^LIBREVISION=[0-9][0-9][0-9]\(.*\)$;LIBREVISION=${NEW_VERSION}\1;g" \
100         libcitadel/configure.in
101
102
103
104 ################################################################################
105 # citserver
106
107 DebChangeLog citadel/debian/changelog citadel
108
109 OLD_VERSION=`grep AC_INIT citadel/configure.ac  |sed "s;.*\[\(....\)\],.*;\1;"`
110 echo citserver OLD_VERSION is $OLD_VERSION
111
112 sed -i "s;${OLD_VERSION};${NEW_VERSION};" citadel/configure.ac
113
114 sed  -i -e "s;^#define REV_LEVEL.*[0-9][0-9][0-9]\(.*\)$;#define REV_LEVEL\t${NEW_VERSION}\1;g" \
115         -e "s;^#define LIBCITADEL_MIN.*[0-9][0-9][0-9]\(.*\)$;#define LIBCITADEL_MIN\t${NEW_VERSION}\1;g" \
116         citadel/citadel.h
117
118 ################################################################################
119 # textclient
120
121 DebChangeLog textclient/debian/changelog textclient
122
123 sed -i "s;${OLD_VERSION};${NEW_VERSION};" textclient/configure.ac
124
125
126 ################################################################################
127 # webcit
128
129 DebChangeLog webcit/debian/changelog webcit
130
131 sed -i "s;${OLD_VERSION};${NEW_VERSION};" webcit/configure.ac
132
133 sed  -i -e "s;^#define CLIENT_VERSION.*[0-9][0-9][0-9]\(.*\)$;#define CLIENT_VERSION\t\t${NEW_VERSION}\1;g" \
134         -e "s;^#define MINIMUM_CIT_VERSION.*[0-9][0-9][0-9]\(.*\)$;#define MINIMUM_CIT_VERSION\t${NEW_VERSION}\1;g" \
135         -e "s;^#define LIBCITADEL_MIN.*[0-9][0-9][0-9]\(.*\)$;#define LIBCITADEL_MIN\t${NEW_VERSION}\1;g" \
136         webcit/webcit.h
137
138