diff options
Diffstat (limited to 'urpm/md5sum.pm')
-rw-r--r-- | urpm/md5sum.pm | 35 |
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 }; |