]> source.dussan.org Git - jgit.git/commitdiff
tools/version.sh: Update OSGi manifest files 78/378/1
authorShawn O. Pearce <spearce@spearce.org>
Fri, 19 Mar 2010 02:18:37 +0000 (19:18 -0700)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 19 Mar 2010 02:20:32 +0000 (19:20 -0700)
Tag the version number and API range in the OSGi manifest files
whenever we bump the pom.xml files.

Change-Id: I7c38b51f7139c02bef6b0e67d3f9199cbcdc8a39
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
org.eclipse.jgit.packaging/org.eclipse.jgit.updatesite/pom.xml
tools/version.sh [changed mode: 0644->0755]

index cdf4502b2fc55689db66334a56af0b489a5e30c3..e3997ac3397ad990f5d0e5a771f81fda826a20dc 100644 (file)
@@ -57,6 +57,8 @@
   <packaging>eclipse-update-site</packaging>
 
   <name>Eclipse JGit Plugin Update Site (Incubation)</name>
+  <!-- see http://issues.sonatype.org/browse/TYCHO-313 -->
+  <version>0.6.0</version>
 
   <dependencies>
     <dependency>
@@ -89,7 +91,5 @@
       </plugin>
     </plugins>
   </build>
-  <!-- see http://issues.sonatype.org/browse/TYCHO-313 -->
-  <version>0.6.0</version>
 
 </project>
old mode 100644 (file)
new mode 100755 (executable)
index c3cf7ba..50f066b
@@ -77,15 +77,70 @@ 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 '
+               $ARGV[0] =~ /^(\d+)(?:\.(\d+)(?:\.(\d+))?)?-(\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}/;
+       ' $(git ls-files | grep META-INF/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}/);
+       }
+       ' org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
+
+perl -pi -e '
+       s{<(version)>.*</\1>}{<${1}>'"$POM_V"'</${1}>};
+       ' org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
+
+perl -pi -e '
+       if ($ARGV ne $old_argv) {
+               $seen_version = 0;
+               $old_argv = $ARGV;
+       }
+       if ($seen_version < 3) {
+               $seen_version++ if
+               s{<(version)>.*</\1>}{<${1}>'"$POM_V"'</${1}>};
+       }
+       ' org.eclipse.jgit.packaging/org.eclipse.jgit.updatesite/pom.xml
+
 perl -pi -e '
        if ($ARGV ne $old_argv) {
                $seen_version = 0;