summaryrefslogtreecommitdiff
path: root/lib/SlackBuild/Archive/Extractor/HTTP.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/SlackBuild/Archive/Extractor/HTTP.pm')
-rw-r--r--lib/SlackBuild/Archive/Extractor/HTTP.pm30
1 files changed, 15 insertions, 15 deletions
diff --git a/lib/SlackBuild/Archive/Extractor/HTTP.pm b/lib/SlackBuild/Archive/Extractor/HTTP.pm
index 0d72916..4676d95 100644
--- a/lib/SlackBuild/Archive/Extractor/HTTP.pm
+++ b/lib/SlackBuild/Archive/Extractor/HTTP.pm
@@ -2,6 +2,7 @@ package SlackBuild::Archive::Extractor::HTTP;
use strict;
use warnings;
use parent 'SlackBuild::Archive::Extractor';
+use SlackBuild::Download;
use HTML::Parser;
use File::Basename;
use File::Temp;
@@ -13,15 +14,15 @@ sub extract {
my $self = shift;
my $dst = $self->destdir;
-
+ my $result = new SlackBuild::Download($self->archive);
unless ($self->_html_list($self->tempfile)) {
- return $self->error("$self: bad index file");
+ $self->logger->error($self->archive . ": bad index file");
+ return $result;
}
+
+ return $result unless $self->archive->verify;
- return 0 unless $self->archive->verify;
-
- return $self->archive->iterate(sub {
- my $file = shift;
+ for (my $i = 0; my $file = $self->archive->dir($i); $i++) {
my $subdir = dirname($file);
my $dir = File::Spec->catfile($dst, $subdir);
unless (-d $dir) {
@@ -35,27 +36,26 @@ sub extract {
$self->error("can't create $file: $message");
}
}
- return 0;
+ return $result;
}
}
my $uri = $self->archive->new_abs($file);
my ($dh,$tmp) = File::Temp::tempfile(DIR => $dir, UNLINK => 1);
chmod 0644, $dh;
unless ($uri->download($tmp)) {
- return $self->error("can't download $uri: "
- . $uri->download_status);
- }
+ return $result;
+ }
my $destfile = File::Spec->catfile($dst, $file);
- if ($uri->downloaded_html && $self->_html_list($tmp, $file)) {
+ if ($result->is_html && $self->_html_list($tmp, $file)) {
;
} else {
rename $tmp, $destfile
- or $self->error("can't rename $tmp to $destfile: $!");
+ or $self->logger->error("can't rename $tmp to $destfile: $!");
}
close $dh;
- return 1;
- });
- return 1;
+ }
+ $result->success(1);
+ return $result;
}
sub _html_list {

Return to:

Send suggestions and report system problems to the System administrator.