summaryrefslogtreecommitdiff
path: root/lib/SlackBuild/Archive
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2017-11-26 21:20:52 +0100
committerSergey Poznyakoff <gray@gnu.org.ua>2017-11-26 21:20:52 +0100
commit2f104feb62d8c9a6c27c0090a310afeefff4af09 (patch)
treebb358f5ac0d85da6185db5b0d51e67e7b4e49dba /lib/SlackBuild/Archive
parent0150f4a7597a8eb490d0fb8ddf63b92e154e489d (diff)
downloadslackbuilder-2f104feb62d8c9a6c27c0090a310afeefff4af09.tar.gz
slackbuilder-2f104feb62d8c9a6c27c0090a310afeefff4af09.tar.bz2
Use content type of the downloaded resource to select the backend for its handling
* lib/SlackBuild/Archive/Extractor.pm (_backend): Use archive->downloaded_html to select the backend. * lib/SlackBuild/Archive/Extractor/HTTP.pm (extract): Use $uri->downloaded_html instead of is_html. (is_html): Remove. * lib/SlackBuild/URI.pm (downloaded_html): New method.
Diffstat (limited to 'lib/SlackBuild/Archive')
-rw-r--r--lib/SlackBuild/Archive/Extractor.pm22
-rw-r--r--lib/SlackBuild/Archive/Extractor/HTTP.pm20
2 files changed, 5 insertions, 37 deletions
diff --git a/lib/SlackBuild/Archive/Extractor.pm b/lib/SlackBuild/Archive/Extractor.pm
index f9f8527..90a833f 100644
--- a/lib/SlackBuild/Archive/Extractor.pm
+++ b/lib/SlackBuild/Archive/Extractor.pm
@@ -34,25 +34,11 @@ sub extract {
sub _backend {
my $self = shift;
-
- if (open(my $fh, '<', $self->tempfile)) {
- my $s;
- while (<$fh>) {
- next if /^\s+$/;
- chomp;
- s/^\s+//;
- $s = $_;
- last;
- }
- close $fh;
- return $self->error("empty file") unless defined $s;
- if ($s =~ m{^<}) {
- return bless $self, 'SlackBuild::Archive::Extractor::HTTP';
- }
- return bless $self, 'SlackBuild::Archive::Extractor::Tar';
+
+ if ($self->archive->downloaded_html) {
+ return bless $self, 'SlackBuild::Archive::Extractor::HTTP';
} else {
- $self->error("can't open file ".$self->tempfile.": $!");
- return $self;
+ return bless $self, 'SlackBuild::Archive::Extractor::Tar';
}
}
diff --git a/lib/SlackBuild/Archive/Extractor/HTTP.pm b/lib/SlackBuild/Archive/Extractor/HTTP.pm
index 9d1f335..8967406 100644
--- a/lib/SlackBuild/Archive/Extractor/HTTP.pm
+++ b/lib/SlackBuild/Archive/Extractor/HTTP.pm
@@ -45,7 +45,7 @@ sub extract {
. $uri->download_status);
}
my $destfile = File::Spec->catfile($dst, $file);
- if ($self->is_html($tmp)
+ if ($uri->downloaded_html
&& $self->_html_list($tmp, File::Spec->catfile($subdir, $file))) {
;
} else {
@@ -77,22 +77,4 @@ sub _html_list {
return $p->parse_file($filename);
}
-sub is_html {
- my ($self, $file) = @_;
- if (open(my $fh, '<', $file)) {
- my $s;
- while (<$fh>) {
- next if /^\s+$/;
- chomp;
- s/^\s+//;
- $s = $_;
- last;
- }
- close $fh;
- return 0 unless defined $s;
- return $s =~ m{^<};
- }
- return 0;
-}
-
1;

Return to:

Send suggestions and report system problems to the System administrator.