version 1.9, 2002/11/04 01:57:53
|
version 1.12, 2003/08/22 20:48:38
|
Line 16 B<perltest.pl> - Test status of perl mod
|
Line 16 B<perltest.pl> - Test status of perl mod
|
|
|
# Written to help LON-CAPA (The LearningOnline Network with CAPA) |
# Written to help LON-CAPA (The LearningOnline Network with CAPA) |
# |
# |
# YEAR=2001 |
|
# 9/30 Scott Harrison |
|
# YEAR 2002 and onwards |
|
# Scott Harrison, sharrison@users.sourceforge.net |
|
|
|
=pod |
=pod |
|
|
Line 142 Ratings: 1=horrible 2=poor 3=fair 4=good
|
Line 138 Ratings: 1=horrible 2=poor 3=fair 4=good
|
|
|
=head1 AUTHOR |
=head1 AUTHOR |
|
|
Scott Harrison, sharrison@users.sourceforge.net, 2001, 2002 |
|
|
|
This software is distributed under the General Public License, |
This software is distributed under the General Public License, |
version 2, June 1991 (which is the same terms as LON-CAPA). |
version 2, June 1991 (which is the same terms as LON-CAPA). |
|
|
Line 331 my @dev_missing;
|
Line 325 my @dev_missing;
|
my @dev_outdated; |
my @dev_outdated; |
my @dev_okay; |
my @dev_okay; |
my @dev_veryokay; |
my @dev_veryokay; |
|
my @dev_to_update; |
my @stable_missing; |
my @stable_missing; |
my @stable_outdated; |
my @stable_outdated; |
my @stable_okay; |
my @stable_okay; |
my @stable_veryokay; |
my @stable_veryokay; |
|
my @stable_to_update; |
|
|
# ===== Loop through all of the needed CPAN distributions and probe the system. |
# ===== Loop through all of the needed CPAN distributions and probe the system. |
foreach my $dist (keys %dist_module_hash) |
foreach my $dist (keys %dist_module_hash) { |
{ |
|
my $module = $dist_module_hash{$dist}; |
my $module = $dist_module_hash{$dist}; |
my $fs = $modulefs_hash{$module}; |
my $fs = $modulefs_hash{$module}; |
my $fsflag = 0; |
my $fsflag = 0; |
if ($big_module_string =~ /$fs/) |
if ($big_module_string =~ /$fs/) { $fsflag = 1; } |
{ |
|
$fsflag = 1; |
|
} |
|
my ($vok,$vstr); |
my ($vok,$vstr); |
($vok,$vstr) = have_vers($module,$module_dev_version_hash{$module}); |
foreach my $type ('dev','stable') { |
# print "fsflag: $fsflag, vok: $vok, vstr: $vstr, fs: $fs\n"; |
my ($vers_mod,$vers_dist); |
if ($fsflag and !$vok and $vstr=~/not found/) |
my ($missing,$outdated,$veryokay,$okay,$to_update); |
{ |
if ($type eq 'dev') { |
push(@dev_missing,'MISSING '.$dist.' (want distribution version '. |
$vers_mod=$module_dev_version_hash{$module}; |
$dist_dev_version_hash{$dist}.') ?'."\n"); |
$vers_dist=$dist_dev_version_hash{$dist}; |
# The question mark indicates there was a pattern match in the |
($missing,$outdated,$veryokay,$okay,$to_update)= |
# big_module_string which would be unexpected. |
(\@dev_missing,\@dev_outdated,\@dev_veryokay,\@dev_okay, |
# There is no usual reason to tell the normal LON-CAPA user about this |
\@dev_to_update); |
# question mark. This is just source code magic. |
} elsif ($type eq 'stable') { |
} |
$vers_mod=$module_stable_version_hash{$module}; |
elsif (!$fsflag and !$vok and $vstr=~/not found/) |
$vers_dist=$dist_stable_version_hash{$dist}; |
{ |
($missing,$outdated,$veryokay,$okay,$to_update)= |
push(@dev_missing,'MISSING '.$dist.' (want distribution version '. |
(\@stable_missing,\@stable_outdated,\@stable_veryokay, |
$dist_dev_version_hash{$dist}.')'."\n"); |
\@stable_okay,\@stable_to_update); |
} |
} |
elsif ($fsflag and !$vok and $vstr!~/not found/) |
($vok,$vstr) = have_vers($module,$vers_mod); |
{ |
# print "fsflag: $fsflag, vok: $vok, vstr: $vstr, fs: $fs\n"; |
push(@dev_outdated,'OUTDATED '.$dist.' wanted module: v'. |
if ($fsflag and !$vok and $vstr=~/not found/) { |
$module_dev_version_hash{$module}.'; '.$vstr.' (VERSION_FROM is '. |
push(@$missing,'MISSING '.$dist.' (want distribution '. |
$fs.') want dist version '.$dist_dev_version_hash{$dist}.'.'. |
$module.' version '. $vers_dist.') ?'."\n"); |
"\n"); |
push(@$to_update,$dist); |
} |
# The question mark indicates there was a pattern match in the |
elsif ($fsflag) |
# big_module_string which would be unexpected. |
{ |
# There is no usual reason to tell the normal LON-CAPA user about this |
$vstr=~/found v(.*)/; |
# question mark. This is just source code magic. |
my $vc=$1; |
} elsif (!$fsflag and !$vok and $vstr=~/not found/) { |
if ($vc eq $module_dev_version_hash{$module}) |
push(@$missing,'MISSING '.$dist.' (want distribution '. |
{ |
$module.' version '.$vers_dist.')'."\n"); |
push(@dev_veryokay,'VERYOKAY '.$dist.' wanted: v'. |
push(@$to_update,$dist); |
$module_dev_version_hash{$module}.'; '.$vstr. |
} elsif ($fsflag and !$vok and $vstr!~/not found/) { |
' (VERSION_FROM is '.$fs.') want dist version '. |
push(@$outdated,'OUTDATED '.$dist.' wanted module: v'. |
$dist_dev_version_hash{$dist}."\n"); |
$vers_mod.'; '.$vstr.' (VERSION_FROM is '. |
} |
$fs.') want dist '.$module.' version '.$vers_dist.'.'. "\n"); |
else |
push(@$to_update,$dist); |
{ |
} elsif ($fsflag) { |
push(@dev_okay,'OKAY '.$dist.' wanted: v'. |
$vstr=~/found v(.*)/; |
$module_dev_version_hash{$module}.'; '.$vstr. |
my $vc=$1; |
' (VERSION_FROM is '.$fs.').'."\n"); |
if ($vc eq $vers_mod) { |
} |
push(@$veryokay,'VERYOKAY '.$dist.' wanted: v'. |
} |
$vers_mod.'; '.$vstr.' (VERSION_FROM is '.$fs. |
($vok,$vstr) = have_vers($module,$module_stable_version_hash{$module}); |
') want dist '.$module.' version '.$vers_dist."\n"); |
if ($fsflag and !$vok and $vstr=~/not found/) |
} else { |
{ |
push(@$okay,'OKAY '.$dist.' wanted: v'. |
push(@stable_missing,'MISSING '.$dist.' (want distribution version '. |
$vers_mod.'; '.$vstr.' (VERSION_FROM is '.$fs.').'."\n"); |
$dist_stable_version_hash{$dist}.') ?'."\n"); |
} |
# The question mark indicates there was a pattern match in the |
} |
# big_module_string which would be unexpected. |
} |
# There is no usual reason to tell the normal LON-CAPA user about this |
} |
# question mark. This is just source code magic. |
|
} |
|
elsif (!$fsflag and !$vok and $vstr=~/not found/) |
|
{ |
|
push(@stable_missing,'MISSING '.$dist.' (want distribution version '. |
|
$dist_stable_version_hash{$dist}.')'."\n"); |
|
} |
|
elsif ($fsflag and !$vok and $vstr!~/not found/) |
|
{ |
|
push(@stable_outdated,'OUTDATED '.$dist.' wanted module: v'. |
|
$module_stable_version_hash{$module}.'; '.$vstr. |
|
' (VERSION_FROM is '.$fs.') want dist version '. |
|
$dist_stable_version_hash{$dist}.'.'."\n"); |
|
} |
|
elsif ($fsflag) |
|
{ |
|
$vstr=~/found v(.*)/; |
|
my $vc=$1; |
|
if ($vc eq $module_stable_version_hash{$module}) |
|
{ |
|
push(@stable_veryokay,'VERYOKAY '.$dist.' wanted: v'. |
|
$module_stable_version_hash{$module}.'; '.$vstr. |
|
' (VERSION_FROM is '.$fs.') want dist version '. |
|
$dist_stable_version_hash{$dist}."\n"); |
|
} |
|
else |
|
{ |
|
push(@stable_okay,'OKAY '.$dist.' wanted: v'. |
|
$module_stable_version_hash{$module}.'; '.$vstr. |
|
' (VERSION_FROM is '.$fs.').'."\n"); |
|
} |
|
} |
|
} |
|
|
|
print("\n".'SYNOPSIS'."\n"); |
print("\n".'SYNOPSIS'."\n"); |
|
|
Line 556 if ($mode eq "html")
|
Line 515 if ($mode eq "html")
|
END |
END |
} |
} |
|
|
|
if ($mode =~ /^update(dev|stable)$/) { |
|
use CPAN; |
|
my $type=$1; |
|
print $detailstream 'Attempting to do a '.$type.' update'."\n"; |
|
my $to_update; |
|
if ($type eq 'dev') { |
|
$to_update=\@dev_to_update; |
|
} elsif ($type eq 'stable') { |
|
$to_update=\@stable_to_update; |
|
} |
|
foreach my $dist (@$to_update) { |
|
my $module=$dist_module_hash{$dist}; |
|
my ($vers_mod,$vers_dist); |
|
if ($type eq 'dev') { |
|
$vers_mod=$module_dev_version_hash{$module}; |
|
$vers_dist=$dist_dev_version_hash{$dist}; |
|
} elsif ($type eq 'stable') { |
|
$vers_mod=$module_stable_version_hash{$module}; |
|
$vers_dist=$dist_stable_version_hash{$dist}; |
|
} |
|
install($module); |
|
} |
|
} |
# ================================================================ Subroutines. |
# ================================================================ Subroutines. |
# Note that "vers_cmp" and "have_vers" are adapted from a bugzilla version 2.16 |
# Note that "vers_cmp" and "have_vers" are adapted from a bugzilla version 2.16 |
# "checksetup.pl" script. |
# "checksetup.pl" script. |