| #!/bin/sh | |
| # Copyright (C) 2009, Google Inc. | |
| # and other copyright owners as documented in the project's IP log. | |
| # | |
| # This program and the accompanying materials are made available | |
| # under the terms of the Eclipse Distribution License v1.0 which | |
| # accompanies this distribution, is reproduced below, and is | |
| # available at http://www.eclipse.org/org/documents/edl-v10.php | |
| # | |
| # All rights reserved. | |
| # | |
| # Redistribution and use in source and binary forms, with or | |
| # without modification, are permitted provided that the following | |
| # conditions are met: | |
| # | |
| # - Redistributions of source code must retain the above copyright | |
| # notice, this list of conditions and the following disclaimer. | |
| # | |
| # - Redistributions in binary form must reproduce the above | |
| # copyright notice, this list of conditions and the following | |
| # disclaimer in the documentation and/or other materials provided | |
| # with the distribution. | |
| # | |
| # - Neither the name of the Eclipse Foundation, Inc. nor the | |
| # names of its contributors may be used to endorse or promote | |
| # products derived from this software without specific prior | |
| # written permission. | |
| # | |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND | |
| # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, | |
| # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |
| # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
| # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR | |
| # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | |
| # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |
| # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | |
| # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
| # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |
| # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| # Update all pom.xml with new build number | |
| # | |
| # TODO(spearce) This should be converted to some sort of | |
| # Java based Maven plugin so its fully portable. | |
| # | |
| case "$1" in | |
| --snapshot=*) | |
| V=$(echo "$1" | perl -pe 's/^--snapshot=//') | |
| if [ -z "$V" ] | |
| then | |
| echo >&2 "usage: $0 --snapshot=0.n.0" | |
| exit 1 | |
| fi | |
| case "$V" in | |
| *-SNAPSHOT) : ;; | |
| *) V=$V-SNAPSHOT ;; | |
| esac | |
| ;; | |
| --release) | |
| V=$(git describe HEAD) || exit | |
| ;; | |
| *) | |
| echo >&2 "usage: $0 {--snapshot=0.n.0 | --release}" | |
| exit 1 | |
| esac | |
| case "$V" in | |
| v*) V=$(echo "$V" | perl -pe s/^v//) ;; | |
| esac | |
| case "$V" in | |
| *-SNAPSHOT) | |
| POM_V=$V | |
| OSGI_V="${V%%-SNAPSHOT}.qualifier" | |
| ;; | |
| *-[1-9]*-g[0-9a-f]*) | |
| POM_V=$(echo "$V" | perl -pe 's/-(\d+-g.*)$/.$1/') | |
| OSGI_V=$(perl -e ' | |
| die unless $ARGV[0] =~ /^(\d+)(?:\.(\d+)(?:\.(\d+))?(?:\.\d{12}-r)?)?-(\d+)-g(.*)$/; | |
| my ($a, $b, $c, $p, $r) = ($1, $2, $3, $4, $5); | |
| $b = '0' unless defined $b; | |
| $c = '0' unless defined $c; | |
| printf "%s.%s.%s.%6.6i_g%s\n", $a, $b, $c, $p, $r; | |
| ' "$V") | |
| ;; | |
| *) | |
| POM_V=$V | |
| OSGI_V=$V | |
| ;; | |
| esac | |
| API_V=$(perl -e ' | |
| $ARGV[0] =~ /^(\d+(?:\.\d+(?:\.\d+)?)?)/; | |
| print $1 | |
| ' "$V") | |
| API_N=$(perl -e ' | |
| $ARGV[0] =~ /^(\d+)(?:\.(\d+)(?:\.(\d+))?)?/; | |
| my ($a, $b) = ($1, $2); | |
| $b = 0 unless defined $b; | |
| $b++; | |
| print "$a.$b.0"; | |
| ' "$API_V") | |
| perl -pi~ -e ' | |
| s/^(Bundle-Version:\s*).*$/${1}'"$OSGI_V"'/; | |
| s/(org.eclipse.jgit.*;version=")[^"[(]*(")/${1}'"$API_V"'${2}/; | |
| s/(org.eclipse.jgit.*;version="\[)[^"]*(\)")/${1}'"$API_V,$API_N"'${2}/; | |
| s/(Fragment-Host: org.eclipse.jgit.*;bundle-version="\[)[^"]*(\)")/${1}'"$API_V,$API_N"'${2}/; | |
| ' $(git ls-files | grep META-INF/MANIFEST.MF) | |
| perl -pi~ -e ' | |
| s/^(Bundle-Version:\s*).*$/${1}'"$OSGI_V"'/; | |
| s/(org.eclipse.jgit.*;version=")[^"[(]*(")/${1}'"$API_V"'${2}/; | |
| s/(org.eclipse.jgit.*;version="\[)[^"]*(\)")/${1}'"$API_V,$API_N"'${2}/; | |
| s/^(Eclipse-SourceBundle:\s*org.eclipse.jgit.*;version=\").*(\";roots=\"\.\")$/${1}'"$OSGI_V"'${2}/; | |
| ' $(git ls-files | grep META-INF/SOURCE-MANIFEST.MF) | |
| perl -pi~ -e ' | |
| if ($ARGV ne $old_argv) { | |
| $seen_version = 0; | |
| $old_argv = $ARGV; | |
| } | |
| if (!$seen_version) { | |
| $seen_version = 1 if (!/<\?xml/ && | |
| s/(version=")[^"]*(")/${1}'"$OSGI_V"'${2}/); | |
| } | |
| s/(import feature="org\.eclipse\.jgit[^"]*" version=")[^"]*(")/${1}'"$API_V"'${2}/; | |
| s/(import plugin="org\.eclipse\.jgit[^"]*" version=")[^"]*(")/${1}'"$API_V"'${2}/; | |
| ' org.eclipse.jgit.packaging/org.*.feature/feature.xml | |
| perl -pi~ -e ' | |
| if ($ARGV ne $old_argv) { | |
| $seen_version = 0; | |
| $old_argv = $ARGV; | |
| } | |
| if ($seen_version < 2) { | |
| $seen_version++ if | |
| s{<(version)>.*</\1>}{<${1}>'"$POM_V"'</${1}>}; | |
| } | |
| ' org.eclipse.jgit.packaging/org.*.source.feature/pom.xml | |
| perl -pi~ -e ' | |
| if ($ARGV ne $old_argv) { | |
| $seen_version = 0; | |
| $old_argv = $ARGV; | |
| } | |
| if ($seen_version < 18) { | |
| $seen_version++ if | |
| s{<(version)>.*</\1>}{<${1}>'"$POM_V"'</${1}>}; | |
| } | |
| ' org.eclipse.jgit.coverage/pom.xml | |
| perl -pi~ -e ' | |
| if ($ARGV ne $old_argv) { | |
| $seen_version = 0; | |
| $old_argv = $ARGV; | |
| } | |
| if (!$seen_version) { | |
| $seen_version = 1 if | |
| s{<(version)>.*</\1>}{<${1}>'"$POM_V"'</${1}>}; | |
| } | |
| ' $(git ls-files | grep pom.xml) | |
| find . -name '*~' | xargs rm -f | |
| git --no-pager diff |