Minor: Fix Javadoc typos
[egit/eclipse.git] / tools / version.sh
bloba934c85ec4d7fca30a198f5019335be834b1e8fa
1 #!/bin/sh
2 # Copyright (C) 2009, Google Inc.
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Eclipse Public License 2.0
6 # which accompanies this distribution, and is available at
7 # https://www.eclipse.org/legal/epl-2.0/
9 # SPDX-License-Identifier: EPL-2.0
11 # Update all pom.xml with new build number
13 # TODO(spearce) This should be converted to some sort of
14 # Java based Maven plugin so its fully portable.
20 while [ $# -gt 0 ]
22 case "$1" in
23 --snapshot=*)
24 V=$(echo "$1" | perl -pe 's/^--snapshot=//')
25 if [ -z "$V" ]
26 then
27 echo >&2 "usage: $0 --snapshot=0.n.0"
28 exit 1
30 case "$V" in
31 *-SNAPSHOT) : ;;
32 *) V=$V-SNAPSHOT ;;
33 esac
34 shift
37 --release)
38 V=$(git describe HEAD) || exit
39 shift
42 --jgit=*)
43 J=${1##--jgit=}
44 shift
48 echo >&2 "usage: $0 {--snapshot=0.n.0 | --release} [--jgit=0.n.0]"
49 exit 1
50 esac
51 done
53 case "$V" in
54 v*) V=$(echo "$V" | perl -pe s/^v//) ;;
55 '')
56 echo >&2 "usage: $0 {--snapshot=0.n.0 | --release}"
57 exit 1
58 esac
60 case "$V" in
61 *-SNAPSHOT)
62 POM_V=$V
63 OSGI_V="${V%%-SNAPSHOT}.qualifier"
65 *-[1-9]*-g[0-9a-f]*)
66 POM_V=$(echo "$V" | perl -pe 's/-(\d+-g.*)$/.$1/')
67 OSGI_V=$(perl -e '
68 $ARGV[0] =~ /^(\d+)(?:\.(\d+)(?:\.(\d+))?)?-(\d+)-g(.*)$/;
69 my ($a, $b, $c, $p, $r) = ($1, $2, $3, $4, $5);
70 $b = '0' unless defined $b;
71 $c = '0' unless defined $c;
73 printf "%s.%s.%s.%6.6i_g%s\n", $a, $b, $c, $p, $r;
74 ' "$V")
77 POM_V=$V
78 OSGI_V=$V
80 esac
82 to_version() {
83 perl -e '
84 $ARGV[0] =~ /^(\d+(?:\.\d+(?:\.\d+)?)?)/;
85 print $1
86 ' "$1"
89 next_version() {
90 perl -e '
91 $ARGV[0] =~ /^(\d+)(?:\.(\d+)(?:\.(\d+))?)?/;
92 my ($a, $b) = ($1, $2);
93 $b = 0 unless defined $b;
94 $b++;
95 print "$a.$b.0";
96 ' "$1"
99 EGIT_V=$(to_version "$V")
100 EGIT_N=$(next_version "$EGIT_V")
102 [ -z "$J" ] && J=$V
103 JGIT_V=$(to_version "$J")
104 JGIT_N=$(next_version "$JGIT_V")
106 perl -pi~ -e '
107 s/^(Bundle-Version:\s*).*$/${1}'"$OSGI_V"'/;
108 s/(org.eclipse.egit.*;version=")[^"[(]*(")/${1}'"$EGIT_V"'${2}/;
109 s/(org.eclipse.egit.*;version="\[)[^"]*(\)")/${1}'"$EGIT_V,$EGIT_N"'${2}/;
110 s/(org.eclipse.egit.*;bundle-version="\[)[^"]*(\)")/${1}'"$EGIT_V,$EGIT_N"'${2}/;
111 s/(org.eclipse.jgit.*;version="\[)[^"]*(\)")/${1}'"$JGIT_V,$JGIT_N"'${2}/;
112 s/(org.eclipse.jgit;bundle-version="\[)[^"]*(\)")/${1}'"$JGIT_V,$JGIT_N"'${2}/;
113 ' $(git ls-files | grep META-INF/MANIFEST.MF)
115 perl -pi~ -e '
116 if ($ARGV ne $old_argv) {
117 $seen_version = 0;
118 $old_argv = $ARGV;
120 if (!$seen_version) {
121 $seen_version = 1 if (!/<\?xml/ &&
122 s/(version=")[^"]*(")/${1}'"$OSGI_V"'${2}/);
124 s/(feature="org.eclipse.egit" version=")[^"]*(")/${1}'"$EGIT_V"'${2}/;
125 ' org.eclipse.egit.mylyn-feature/feature.xml
127 perl -pi~ -e '
128 if ($ARGV ne $old_argv) {
129 $seen_version = 0;
130 $old_argv = $ARGV;
132 if (!$seen_version) {
133 $seen_version = 1 if (!/<\?xml/ &&
134 s/(version=")[^"]*(")/${1}'"$OSGI_V"'${2}/);
136 s/(plugin="org.eclipse.egit.core" version=")[^"]*(")/${1}'"$EGIT_V"'${2}/;
137 s/(plugin="org.eclipse.egit.ui" version=")[^"]*(")/${1}'"$EGIT_V"'${2}/;
138 ' org.eclipse.egit.gitflow-feature/feature.xml
140 perl -pi~ -e '
141 if ($ARGV ne $old_argv) {
142 $seen_version = 0;
143 $old_argv = $ARGV;
145 if (!$seen_version) {
146 $seen_version = 1 if (!/<\?xml/ &&
147 s/(version=")[^"]*(")/${1}'"$OSGI_V"'${2}/);
149 s/(feature="org.eclipse.jgit" version=")[^"]*(")/${1}'"$JGIT_V"'${2}/;
150 ' $(git ls-files | grep feature.xml)
152 perl -pi~ -e '
153 s{<(version)>[^<\$]*</\1>}{<${1}>'"$POM_V"'</${1}>};
154 ' org.eclipse.egit-feature/pom.xml
156 perl -pi~ -e '
157 if ($ARGV ne $old_argv) {
158 $seen_version = 0;
159 $old_argv = $ARGV;
161 if (!$seen_version) {
162 $seen_version = 1 if
163 s{<(version)>[^<\$]*</\1>}{<${1}>'"$POM_V"'</${1}>};
165 s{<(egit-version)>[^<\$]*</\1>}{<${1}>'"$POM_V"'</${1}>};
166 ' pom.xml
168 perl -pi~ -e '
169 if ($ARGV ne $old_argv) {
170 $seen_version = 0;
171 $old_argv = $ARGV;
173 if ($seen_version < 2) {
174 $seen_version++ if
175 s{<(version)>[^<\$]*</\1>}{<${1}>'"$POM_V"'</${1}>};
177 ' org.eclipse.egit.repository/pom.xml
179 perl -pi~ -e '
180 if ($ARGV ne $old_argv) {
181 $seen_version = 0;
182 $seen_version2 = 0;
183 $old_argv = $ARGV;
185 if (!$seen_version) {
186 $seen_version = 1 if
187 s{<(version)>[^<\$]*</\1>}{<${1}>'"$POM_V"'</${1}>};
189 if ($seen_version2 < 2) {
190 $seen_version2++ if
191 s|(<version\>)([\.\d]*)(\</version\>)|${1}'$EGIT_V'${3}|;
193 ' org.eclipse.egit.ui.test/pom.xml
195 perl -pi~ -e '
196 if ($ARGV ne $old_argv) {
197 $seen_version = 0;
198 $seen_version2 = 0;
199 $old_argv = $ARGV;
201 if (!$seen_version) {
202 $seen_version = 1 if
203 s{<(version)>[^<\$]*</\1>}{<${1}>'"$POM_V"'</${1}>};
205 if ($seen_version2 < 3) {
206 $seen_version2++ if
207 s|(<version\>)([\.\d]*)(\</version\>)|${1}'$EGIT_V'${3}|;
209 ' org.eclipse.egit.mylyn.ui.test/pom.xml
211 perl -pi~ -e '
212 if ($ARGV ne $old_argv) {
213 $seen_version = 0;
214 $old_argv = $ARGV;
216 if (!$seen_version) {
217 $seen_version = 1 if
218 s{<(version)>[^<\$]*</\1>}{<${1}>'"$POM_V"'</${1}>};
220 s{<(jgit-version)>[^<]*</\1>}{<${1}>'"$J"'</${1}>};
221 ' $(git ls-files | grep pom.xml)
223 find . -name '*~' | xargs rm -f
224 git diff