|
#!/usr/bin/perl
my $script_dir = "$Bin/../script" ;
my $lib_dir = "$Bin/../blib/lib" ;
push @INC , $lib_dir ;
sub has_shebang
{
my $file = shift ;
die "can't open $file: $!" unless open my $fh , "<" , $file ;
return unless defined ( my $line = < $fh >);
close $fh ;
return $line =~ m{^\s* \
}
sub compile_script
{
my $file = shift ;
my @errors = grep !/syntax OK/, `perl -cw -I '$lib_dir' '$file' 2>&1 >/dev/null`;
my $errors = join "" , @errors ;
$errors .= "Return code " . ($? & 0xff)
if $?;
return $errors ;
}
find
{
wanted => sub
{
return if /~$/;
return unless /\.pl$/ || has_shebang $_ ;
( my $name = $_ ) =~ s!^ $script_dir /!!;
my $errors = compile_script $_ ;
is $errors , "" , $name ;
},
no_chdir => 1,
}, $script_dir
if -d $script_dir ;
find
{
wanted => sub
{
my $name = $_ ;
return unless $name =~ s/\.pm$//;
$name =~ s!^ $lib_dir /!!;
$name =~ s!/!::!g;
use_ok $name ;
},
no_chdir => 1,
}, $lib_dir
if -d $lib_dir ;
|