#!/usr/bin/env perl
use strict;
use warnings;
use Inca::Reporter::Version;
my $reporter = new Inca::Reporter::Version(
name => 'cluster.java.sun.version',
version => 6,
description => 'Reports the version of java',
url => 'http://java.sun.com',
package_name => 'java'
);
$reporter->processArgv(@ARGV);
my $version = $reporter->loggedCommand( "java -version" );
my ($pre, $ver, $post);
if ($?) {
$reporter->failPrintAndExit("java -version failed: $version $!");
} elsif ( $version =~ 'Fast VM .build ' ) {
($pre, $ver, $post) = $version =~ m/(Fast VM .build )(.[^,\s]*)(.*)/;
} elsif ( $version =~ "java version") {
($pre, $ver, $post) = $version =~ m/(java version \")(.[^\"]*)(.*)/;
} elsif ( $version =~ "java-") {
$version =~ s/(.|\s)*java-//;
($ver, $post) = $version =~ m/(.[^\s-]*)(.*)/;
}
if (!defined $ver) {
$reporter->failPrintAndExit("Could not get version information");
}
if ($version =~ m/\(SR\d*\)/){
my ($cut, $sr, $cut2) = $version =~ m/(.*)(SR\d*)(.*)/;
$ver .= "_" . $sr;
}
$reporter->setPackageVersion($ver);
$reporter->print();
exit;
Click here to see help information for the cluster.java.sun.version reporter.