]>
Commit | Line | Data |
---|---|---|
fba7c37f KP |
1 | #!/bin/sh |
2 | ||
b9b01b6e | 3 | if git status -a > /dev/null; then |
fba7c37f KP |
4 | echo 'Uncommited changes in repository' 1>&2 |
5 | exit 1 | |
6 | fi | |
7 | ||
8 | version="$1" | |
9 | case "$version" in | |
10 | 2.[0-9.]*) | |
11 | ;; | |
12 | *) | |
13 | echo 'Invalid version number:' "$version" 1>&2 | |
14 | exit 1 | |
15 | ;; | |
16 | esac | |
17 | ||
18 | eval `echo $version | | |
19 | awk -F. '{ printf ("major=%d\nminor=%d\nrevision=%d\n", | |
20 | $1, $2, $3); }'` | |
21 | ||
22 | # Update the version numbers | |
23 | ||
51f15364 | 24 | sed -i configure.in -e "/^AM_INIT_AUTOMAKE/s/2\.[0-9.]*/$version/" |
fba7c37f | 25 | |
51f15364 KP |
26 | sed -i fontconfig/fontconfig.h \ |
27 | -e "/^#define FC_MAJOR/s/[0-9][0-9]*/$major/" \ | |
28 | -e "/^#define FC_MINOR/s/[0-9][0-9]*/$minor/" \ | |
29 | -e "/^#define FC_REVISION/s/[0-9][0-9]*/$revision/" | |
fba7c37f KP |
30 | |
31 | # | |
32 | # Compute pretty form of new version number | |
33 | # | |
34 | version_note=`echo $version | awk -F. '{ | |
35 | if ($3 > 90) | |
36 | printf ("%d.%d.%d (%d.%d RC%d)\n", | |
37 | $1, $2, $3, $1, $2 + 1, $3 - 90); | |
38 | else if ($3 == 0) | |
39 | printf ("%d.%d\n", $1, $2); | |
40 | else | |
41 | printf ("%d.%d.%d\n", $1, $2, $3); }'` | |
42 | ||
43 | # | |
44 | # Find previous version in README | |
45 | # | |
46 | last_note=`grep '^2\.[0-9.]*' README | | |
47 | head -1 | | |
48 | sed 's/ (2\.[0-9]* RC[0-9]*)//'` | |
49 | case $last_note in | |
50 | 2.*.*) | |
51 | last=$last_note | |
52 | ;; | |
53 | 2.*) | |
54 | last="$last_note.0" | |
55 | ;; | |
56 | *) | |
57 | echo 'cannot find previous changelog' 1>&2 | |
58 | exit 1 | |
59 | esac | |
60 | ||
61 | # | |
62 | # Format the current date for the README header | |
63 | # | |
64 | date=`date '+%Y-%m-%d'` | |
65 | ||
66 | # | |
67 | # Update the readme file | |
68 | # | |
69 | if [ $version != $last ]; then | |
70 | # | |
71 | # header | |
72 | # | |
0b15b5f3 | 73 | (sed '/^2\.[0-9.]*/,$d' README | |
fba7c37f KP |
74 | sed -e "s/Version.*/Version $version_note/" \ |
75 | -e "s/200.*/$date/" | awk ' | |
76 | /^[ \t]/ { | |
77 | gsub ("^[ \t]*", ""); | |
78 | gsub ("[ \t]*$", ""); | |
79 | space=(70 - length) / 2; | |
80 | for (i = 0; i < space; i++) | |
81 | printf (" "); | |
82 | ||
83 | next | |
84 | } | |
85 | { | |
86 | ||
87 | }' | |
88 | ||
89 | # | |
90 | # changelog | |
91 | # | |
92 | ||
93 | echo $version_note | |
94 | echo | |
b9b01b6e | 95 | git log --pretty=short $last.. | git shortlog | cat |
fba7c37f KP |
96 | |
97 | # | |
98 | # previous changelogs | |
99 | # | |
100 | ||
0b15b5f3 | 101 | sed -n '/^2\.[0-9.]*/,$p' README) > README.tmp || |
fba7c37f KP |
102 | (echo "README update failed"; exit 1) |
103 | ||
51f15364 | 104 | mv README.tmp README |
fba7c37f KP |
105 | fi |
106 | ||
b9b01b6e | 107 | $test git commit -m"Bump version to $version" \ |
fba7c37f KP |
108 | configure.in \ |
109 | fontconfig/fontconfig.h \ | |
110 | README | |
111 | ||
112 | # tag the tree | |
b9b01b6e | 113 | $test git tag -u 096c4dd3 -m "Version $version" $version |
fba7c37f KP |
114 | |
115 | # Make distributed change log | |
116 | ||
b9b01b6e | 117 | git log --stat $last.. > ChangeLog-$version |
fba7c37f | 118 |