Support X.Y.Z.D Perl versions

Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/6513de06
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/6513de06
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/6513de06

Branch: refs/heads/master
Commit: 6513de06954cd41f99345bde513cf6ce6faed078
Parents: 7101590
Author: Nick Wellnhofer <wellnho...@aevum.de>
Authored: Thu Nov 24 15:31:14 2016 +0100
Committer: Nick Wellnhofer <wellnho...@aevum.de>
Committed: Fri Dec 2 20:15:14 2016 +0100

----------------------------------------------------------------------
 devel/bin/update_version | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/6513de06/devel/bin/update_version
----------------------------------------------------------------------
diff --git a/devel/bin/update_version b/devel/bin/update_version
index 5adaadb..35c8dd0 100755
--- a/devel/bin/update_version
+++ b/devel/bin/update_version
@@ -28,28 +28,33 @@ my $usage = "$0 version\n";
 my $version = shift(@ARGV) or die $usage;
 
 # standardize version strings
-my ( $x, $y, $z, $dev );
+my ( $x, $y, $z, $dev_sep, $dev );
 if ( $version =~ m/^(\d+)\.(\d+)\.(\d+)$/ ) {
     ( $x, $y, $z, $dev ) = ( $1, $2, $3, 0 );
 }
-elsif ( $version =~ m/^(\d+)\.(\d+)\.(\d+)_(\d+)$/ ) {
-    ( $x, $y, $z, $dev ) = ( $1, $2, $3, $4 );
+elsif ( $version =~ m/^(\d+)\.(\d+)\.(\d+)([._])(\d+)$/ ) {
+    ( $x, $y, $z, $dev_sep, $dev ) = ( $1, $2, $3, $4, $5 );
 }
 elsif ( $version =~ m/^(\d+)\.(\d\d\d)(\d\d\d)$/ ) {
     ( $x, $y, $z, $dev ) = ( int($1), int($2), int($3), 0 );
 }
-elsif ( $version =~ m/^(\d+)\.(\d\d\d)(\d\d\d)_(\d\d\d)$/ ) {
-    ( $x, $y, $z, $dev ) = ( int($1), int($2), int($3), int($4) );
+elsif ( $version =~ m/^(\d+)\.(\d\d\d)(\d\d\d)(_)?(\d\d\d)$/ ) {
+    ( $x, $y, $z, $dev_sep, $dev )
+        = ( int($1), int($2), int($3), defined($4) ? $4 : '.', int($5) );
 }
 else {
     die "Unknown version syntax. Try X.Y.Z or X.YYYZZZ\n";
 }
 my $x_y_z_version    = sprintf( "%d.%d.%d", $x, $y, $z );
 my $x_y_z_d_version  = $dev
-                       ? sprintf( "%d.%d.%d_%d", $x, $y, $z, $dev )
+                       ? $dev_sep eq '_'
+                         ? sprintf( "%d.%d.%d_%d", $x, $y, $z, $dev )
+                         : sprintf( "%d.%d.%d.%d", $x, $y, $z, $dev )
                        : sprintf( "%d.%d.%d", $x, $y, $z );
 my $x_yyyzzz_version = $dev
-                       ? sprintf( "%d.%03d%03d_%03d", $x, $y, $z, $dev )
+                       ? $dev_sep eq '_'
+                         ? sprintf( "%d.%03d%03d_%03d", $x, $y, $z, $dev )
+                         : sprintf( "%d.%03d%03d%03d", $x, $y, $z, $dev )
                        : sprintf( "%d.%03d%03d", $x, $y, $z );
 
 print "Using version: $x_y_z_version ( $x_yyyzzz_version )\n";

Reply via email to