Decision-Depends
view release on metacpan or search on metacpan
lib/Decision/Depends/Sig.pm view on Meta::CPAN
sub depends
{
my ( $self, $target, $time ) = @_;
my $state = $self->{state};
croak( __PACKAGE__,
"->depends: non-existant signature file `$self->{val}'" )
unless -f $self->{val};
my @deps = ();
my $prev_val = $state->getSig( $target, $self->{val} );
if ( defined $prev_val )
{
my $is_not_equal =
( exists $self->{attr}{force} ?
$self->{attr}{force} : $state->Force ) ||
cmpSig( $prev_val, mkSig( $self->{val} ) );
if ( $is_not_equal )
{
print STDOUT " signature file `", $self->{val}, "' has changed\n"
if $state->Verbose;
push @deps, $self->{val};
}
else
{
print STDOUT " signature file `", $self->{val}, "' is unchanged\n"
if $state->Verbose;
}
}
else
{
print STDOUT " No signature on file for `", $self->{val}, "'\n"
if $state->Verbose;
push @deps, $self->{val};
}
sig => \@deps;
}
sub cmpSig
{
$_[0] ne $_[1];
}
sub mkSig
{
my ( $file ) = @_;
my $fh = IO::File->new( $file, 'r' )
or croak( __PACKAGE__, "->mkSig: non-existant signature file `$file'" );
Digest::MD5->new->addfile($fh)->hexdigest;
}
sub update
{
my ( $self, $target ) = @_;
$self->{state}->setSig( $target, $self->{val}, mkSig( $self->{val} ) );
}
sub pprint
{
my $self = shift;
$self->{val};
}
1;
( run in 3.601 seconds using v1.01-cache-2.11-cpan-437f7b0c052 )