Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 1 | #!/bin/sh |
Akira TAGOH | 5918d5b | 2014-01-17 13:05:25 +0900 | [diff] [blame] | 2 | # fontconfig/new-version.sh |
| 3 | # |
| 4 | # Copyright © 2000 Keith Packard |
| 5 | # |
| 6 | # Permission to use, copy, modify, distribute, and sell this software and its |
| 7 | # documentation for any purpose is hereby granted without fee, provided that |
| 8 | # the above copyright notice appear in all copies and that both that |
| 9 | # copyright notice and this permission notice appear in supporting |
| 10 | # documentation, and that the name of the author(s) not be used in |
| 11 | # advertising or publicity pertaining to distribution of the software without |
| 12 | # specific, written prior permission. The authors make no |
| 13 | # representations about the suitability of this software for any purpose. It |
| 14 | # is provided "as is" without express or implied warranty. |
| 15 | # |
| 16 | # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, |
| 17 | # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO |
| 18 | # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR |
| 19 | # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, |
| 20 | # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| 21 | # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
| 22 | # PERFORMANCE OF THIS SOFTWARE. |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 23 | |
Akira TAGOH | d6de535 | 2012-03-09 22:24:18 +0900 | [diff] [blame] | 24 | if [ "x`git status -s -uno`" != "x" ]; then |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 25 | echo 'Uncommited changes in repository' 1>&2 |
| 26 | exit 1 |
| 27 | fi |
| 28 | |
| 29 | version="$1" |
| 30 | case "$version" in |
| 31 | 2.[0-9.]*) |
| 32 | ;; |
| 33 | *) |
| 34 | echo 'Invalid version number:' "$version" 1>&2 |
| 35 | exit 1 |
| 36 | ;; |
| 37 | esac |
| 38 | |
| 39 | eval `echo $version | |
| 40 | awk -F. '{ printf ("major=%d\nminor=%d\nrevision=%d\n", |
| 41 | $1, $2, $3); }'` |
| 42 | |
| 43 | # Update the version numbers |
| 44 | |
Akira TAGOH | c842412 | 2013-03-29 16:07:30 +0900 | [diff] [blame] | 45 | sed -i configure.ac -e "/^AC_INIT(/s/2\.[0-9.]*/$version/" |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 46 | |
Keith Packard | 51f1536 | 2008-01-10 10:56:52 -0800 | [diff] [blame] | 47 | sed -i fontconfig/fontconfig.h \ |
| 48 | -e "/^#define FC_MAJOR/s/[0-9][0-9]*/$major/" \ |
| 49 | -e "/^#define FC_MINOR/s/[0-9][0-9]*/$minor/" \ |
| 50 | -e "/^#define FC_REVISION/s/[0-9][0-9]*/$revision/" |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 51 | |
Akira TAGOH | 4c2497b | 2020-11-28 11:11:46 +0900 | [diff] [blame] | 52 | sed -i meson.build -e "/version: /s/2\.[0-9.]*/$version/" |
| 53 | |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 54 | # |
| 55 | # Compute pretty form of new version number |
| 56 | # |
| 57 | version_note=`echo $version | awk -F. '{ |
| 58 | if ($3 > 90) |
| 59 | printf ("%d.%d.%d (%d.%d RC%d)\n", |
| 60 | $1, $2, $3, $1, $2 + 1, $3 - 90); |
| 61 | else if ($3 == 0) |
| 62 | printf ("%d.%d\n", $1, $2); |
| 63 | else |
| 64 | printf ("%d.%d.%d\n", $1, $2, $3); }'` |
| 65 | |
| 66 | # |
| 67 | # Find previous version in README |
| 68 | # |
| 69 | last_note=`grep '^2\.[0-9.]*' README | |
| 70 | head -1 | |
| 71 | sed 's/ (2\.[0-9]* RC[0-9]*)//'` |
| 72 | case $last_note in |
| 73 | 2.*.*) |
| 74 | last=$last_note |
| 75 | ;; |
| 76 | 2.*) |
| 77 | last="$last_note.0" |
| 78 | ;; |
| 79 | *) |
| 80 | echo 'cannot find previous changelog' 1>&2 |
| 81 | exit 1 |
| 82 | esac |
| 83 | |
| 84 | # |
| 85 | # Format the current date for the README header |
| 86 | # |
| 87 | date=`date '+%Y-%m-%d'` |
| 88 | |
| 89 | # |
| 90 | # Update the readme file |
| 91 | # |
| 92 | if [ $version != $last ]; then |
| 93 | # |
| 94 | # header |
| 95 | # |
Keith Packard | 0b15b5f | 2008-05-03 20:37:49 -0700 | [diff] [blame] | 96 | (sed '/^2\.[0-9.]*/,$d' README | |
Akira TAGOH | 9835224 | 2013-01-10 17:56:51 +0900 | [diff] [blame] | 97 | sed -r -e "s/Version.*/Version $version_note/" \ |
| 98 | -e "s/[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/$date/" | awk ' |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 99 | /^[ \t]/ { |
| 100 | gsub ("^[ \t]*", ""); |
| 101 | gsub ("[ \t]*$", ""); |
| 102 | space=(70 - length) / 2; |
| 103 | for (i = 0; i < space; i++) |
| 104 | printf (" "); |
| 105 | print |
| 106 | next |
| 107 | } |
| 108 | { |
| 109 | print |
| 110 | }' |
| 111 | |
| 112 | # |
| 113 | # changelog |
| 114 | # |
| 115 | |
| 116 | echo $version_note |
| 117 | echo |
Behdad Esfahbod | b9b01b6 | 2009-03-12 13:48:07 -0400 | [diff] [blame] | 118 | git log --pretty=short $last.. | git shortlog | cat |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 119 | |
| 120 | # |
| 121 | # previous changelogs |
| 122 | # |
| 123 | |
Keith Packard | 0b15b5f | 2008-05-03 20:37:49 -0700 | [diff] [blame] | 124 | sed -n '/^2\.[0-9.]*/,$p' README) > README.tmp || |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 125 | (echo "README update failed"; exit 1) |
| 126 | |
Keith Packard | 51f1536 | 2008-01-10 10:56:52 -0800 | [diff] [blame] | 127 | mv README.tmp README |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 128 | fi |
| 129 | |
Behdad Esfahbod | b9b01b6 | 2009-03-12 13:48:07 -0400 | [diff] [blame] | 130 | $test git commit -m"Bump version to $version" \ |
Akira TAGOH | 2d9ad54 | 2012-06-18 18:31:36 +0900 | [diff] [blame] | 131 | configure.ac \ |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 132 | fontconfig/fontconfig.h \ |
Akira TAGOH | 4ac33d1 | 2020-11-28 11:31:02 +0900 | [diff] [blame] | 133 | meson.build \ |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 134 | README |
| 135 | |
| 136 | # tag the tree |
Behdad Esfahbod | 76374f0 | 2009-06-24 15:19:13 -0400 | [diff] [blame] | 137 | $test git tag -s -m "Version $version" $version |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 138 | |
| 139 | # Make distributed change log |
| 140 | |
Behdad Esfahbod | b9b01b6 | 2009-03-12 13:48:07 -0400 | [diff] [blame] | 141 | git log --stat $last.. > ChangeLog-$version |
Keith Packard | fba7c37 | 2008-01-10 10:40:41 -0800 | [diff] [blame] | 142 | |