#!/usr/bin/perl

use strict;

require "getopts.pl";
&Getopts('v');

my $module = shift;
my $minimum = shift;

my($result, $version, $versionvar);

print "Checking installation status of Perl module $module...\n"
  if $main::opt_v;

$versionvar = $module . "::VERSION";
$version = eval "require $module and defined \$$versionvar and \$$versionvar";
if ($@) {
  print "Module $module is not installed.\n" if $main::opt_v;
  exit 1;
}
if ($version >= $minimum) {
  print "Module is installed and version number is okay\n" if $main::opt_v;
  exit 0;
} else {
  print "Module is installed but needs to be at least version $minimum (currently $version)\n"
    if $main::opt_v;
  # A major bug in perl makes this script return a 0 despite the "exit 1"
  # below. It *does* execute it, but ignores the exit value completely!
  # So to make it return a non-zero I make it bail out with an error when
  # it tries to execute the following "require" statement.
  # As a result this script must be run with 2>/dev/null.
  require "foobarwibble";
  exit 1;
}

