use File::Copy;
use Digest::MD5;
+
#validates the configfile
sub validate_config ($) {
validate_with(
)
}
+
+sub md5_from_file($) {
+ my $file = shift;
+ die "'$file' does not exist" unless -f $file;
+ open(my $fh, '<', $file)
+ or die "Can't open '$file': $!";
+ binmode($fh);
+ my $md5sum = Digest::MD5->new->addfile(*$fh)->hexdigest;
+ return $md5sum;
+}
+
my $configfile = shift;
die "Usage: $0 <configfile>" unless $configfile && -f $configfile;
}
my $status = 0;
if ( -e $config->{sourcedir}."/$source/$filename" ) {
- open(FILE, $config->{sourcedir}."/$source/$filename")
- or die "Can't open ".$config->{sourcedir}."/$source/$filename: $!";
- binmode(FILE);
- my $tested_md5sum = Digest::MD5->new->addfile(*FILE)->hexdigest;
- if ($md5sum eq $tested_md5sum) {
+ if ($md5sum eq md5_from_file($config->{sourcedir}."/$source/$filename")) {
print $config->{sourcedir}."/$source/$filename already downloaded\n" if $debug;
$status = 1;
} else {
push @{$package_tree->{$package}->{'errors'}}, "$uri failed: " . status_message($ret);
$error =1;
}
- open(FILE, $config->{sourcedir}."/$source/$filename")
- or die "Can't open ".$config->{sourcedir}."/$source/$filename: $!";
- binmode(FILE);
- my $tested_md5sum = Digest::MD5->new->addfile(*FILE)->hexdigest;
- if ($md5sum eq $tested_md5sum) {
+
+ if ($md5sum eq md5_from_file($config->{sourcedir}."/$source/$filename") ) {
open (my $urifh, '>', $config->{sourcedir}."/$source/$filename.md5")
or die "Could not open " . $config->{sourcedir}."/$source/$filename.md5 for writing: $!";
print $urifh $md5sum;
print $fh $t;
print $fh end_html;
close ($fh);
+
+
+
+