mirror of
https://github.com/ClusterCockpit/cc-docker.git
synced 2025-04-19 19:31:43 +02:00
Add perl module check
This commit is contained in:
parent
a945a21bc1
commit
4f00939129
52
scripts/checkPerlModules.pl
Executable file
52
scripts/checkPerlModules.pl
Executable file
@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env perl
|
||||
use warnings;
|
||||
use strict;
|
||||
|
||||
my $filename =
|
||||
shift || &help; # command line argument is perl script to evaluate
|
||||
my @modules; # array of 'use' statements from code we are checking
|
||||
|
||||
open( IN, $filename ) or die "couldn't open $filename for processing: $!
|
||||
+\n";
|
||||
|
||||
while (<IN>) {
|
||||
chomp;
|
||||
if ( (/^use/) and not( /strict/ || /warnings/ ) ) {
|
||||
push @modules, $_;
|
||||
}
|
||||
}
|
||||
close IN;
|
||||
my $fail = 0;
|
||||
|
||||
for my $code (@modules) {
|
||||
my ( undef, $library ) = split( / /, $code ); # get the module name
|
||||
$library =~ s/;//; # clean up the name
|
||||
eval $code;
|
||||
if ($@) {
|
||||
warn "couldn't load $library: $@", "\n";
|
||||
$fail = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ($fail) {
|
||||
exit 0;
|
||||
} else {
|
||||
exit 1;
|
||||
}
|
||||
|
||||
sub help
|
||||
{
|
||||
print <<"END";
|
||||
|
||||
checkPerlModules.pl
|
||||
|
||||
This script finds all the "use" statements loading modules in the targ
|
||||
+et perl
|
||||
file (specified as a command line argument) and attempts to load them.
|
||||
If there are problems loading the module, the error mesage returned is
|
||||
+ printed.
|
||||
|
||||
END
|
||||
exit;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user