File Coverage

lib/CPANPLUS/Module/Signature.pm
Criterion Covered Total %
statement 18 38 47.3
branch 0 12 0.0
condition 0 3 0.0
subroutine 6 7 85.7
pod 0 1 0.0
total 24 61 39.3


line stmt bran cond sub pod time code
1             package CPANPLUS::Module::Signature;
2              
3 20     20   149 use strict;
  20         53  
  20         757  
4              
5 20     20   131 use Cwd;
  20         71  
  20         1463  
6 20     20   146 use CPANPLUS::Error;
  20         52  
  20         1404  
7 20     20   149 use Params::Check qw[check];
  20         42  
  20         1031  
8 20     20   160 use Module::Load::Conditional qw[can_load];
  20         43  
  20         1074  
9 20     20   138 use vars qw[$VERSION];
  20         39  
  20         7258  
10             $VERSION = "0.9914";
11              
12             ### detached sig, not actually used afaik --kane ###
13             #sub get_signature {
14             # my $self = shift;
15             #
16             # my $clone = $self->clone;
17             # $clone->package( $self->package . '.sig' );
18             #
19             # return $clone->fetch;
20             #}
21              
22             sub check_signature {
23 0     0 0   my $self = shift;
24 0           my $cb = $self->parent;
25 0           my $conf = $cb->configure_object;
26 0           my %hash = @_;
27              
28 0           my $verbose;
29 0           my $tmpl = {
30             verbose => {default => $conf->get_conf('verbose'), store => \$verbose},
31             };
32              
33 0 0         check( $tmpl, \%hash ) or return;
34              
35 0 0         my $dir = $self->status->extract or (
36             error( loc( "Do not know what dir '%1' was extracted to; ".
37             "Cannot check signature", $self->module ) ),
38             return );
39              
40 0           my $cwd = cwd();
41 0 0         unless( $cb->_chdir( dir => $dir ) ) {
42 0           error(loc( "Could not chdir to '%1', cannot verify distribution '%2'",
43             $dir, $self->module ));
44 0           return;
45             }
46              
47              
48             ### check prerequisites
49 0           my $flag;
50 0           my $use_list = { 'Module::Signature' => '0.06' };
51 0 0         if( can_load( modules => $use_list, verbose => 1 ) ) {
52 0           my $rv = Module::Signature::verify();
53              
54 0 0 0       unless ($rv eq Module::Signature::SIGNATURE_OK() or
55             $rv eq Module::Signature::SIGNATURE_MISSING()
56             ) {
57 0           $flag++; # whoops, bad sig
58             }
59             }
60              
61 0           $cb->_chdir( dir => $cwd );
62 0 0         return $flag ? 0 : 1;
63             }
64              
65             1;