summaryrefslogtreecommitdiffstats
path: root/urpm/md5sum.pm
diff options
context:
space:
mode:
Diffstat (limited to 'urpm/md5sum.pm')
-rw-r--r--urpm/md5sum.pm35
1 files changed, 6 insertions, 29 deletions
diff --git a/urpm/md5sum.pm b/urpm/md5sum.pm
index 05176086..73870dba 100644
--- a/urpm/md5sum.pm
+++ b/urpm/md5sum.pm
@@ -4,48 +4,25 @@ use urpm;
use urpm::util;
use urpm::msg;
+sub parse {
+ my ($md5sum_file) = @_;
-#- parse an MD5SUM file from a mirror
-sub from_MD5SUM {
- my ($md5sum_file, $f) = @_;
- my $basename = basename($f);
-
- my ($retrieved_md5sum) = map {
+ my %h = map {
my ($md5sum, $file) = m|(\S+)\s+(?:\./)?(\S+)|;
- $file && $file eq $basename ? $md5sum : @{[]};
+ $file => $md5sum;
} cat_($md5sum_file);
- $retrieved_md5sum;
+ \%h;
}
sub from_MD5SUM__or_warn {
my ($urpm, $md5sum_file, $basename) = @_;
$urpm->{log}(N("examining %s file", $md5sum_file));
- my $retrieved_md5sum = from_MD5SUM($md5sum_file, $basename)
+ my $retrieved_md5sum = parse($md5sum_file)->{$basename}
or $urpm->{log}(N("warning: md5sum for %s unavailable in MD5SUM file", $basename));
return $retrieved_md5sum;
}
-sub on_local_medium {
- my ($urpm, $medium, $force) = @_;
- if ($force) {
- #- force downloading the file again, else why a force option has been defined ?
- delete $medium->{md5sum};
- } else {
- $medium->{md5sum} ||= compute_on_local_medium($urpm, $medium);
- }
- $medium->{md5sum};
-}
-
-sub compute_on_local_medium {
- my ($urpm, $medium) = @_;
-
- require urpm::media; #- help perl_checker
- my $f = urpm::media::statedir_synthesis($urpm, $medium);
- $urpm->{log}(N("computing md5sum of existing source synthesis [%s]", $f));
- -e $f && compute($f);
-}
-
sub compute {
my ($file) = @_;
eval { require Digest::MD5 };