diff options
Diffstat (limited to 'lib/SlackBuild/Archive/Extractor.pm')
-rw-r--r-- | lib/SlackBuild/Archive/Extractor.pm | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/lib/SlackBuild/Archive/Extractor.pm b/lib/SlackBuild/Archive/Extractor.pm index 15ed76f..de48962 100644 --- a/lib/SlackBuild/Archive/Extractor.pm +++ b/lib/SlackBuild/Archive/Extractor.pm @@ -11,12 +11,17 @@ sub new { _destdir => $destdir }, $class; } +sub logger { + my $self = shift; + $self->{_logger} //= Log::Log4perl::get_logger(ref($self)) +} + sub backend { - my ($class, $archive, @args) = @_; - if ($archive->downloaded_html) { - return new SlackBuild::Archive::Extractor::HTTP($archive, @args); + my ($class, $download, @args) = @_; + if ($download->is_html) { + return new SlackBuild::Archive::Extractor::HTTP($download, @args); } else { - return new SlackBuild::Archive::Extractor::Tar($archive, @args); + return new SlackBuild::Archive::Extractor::Tar($download, @args); } } @@ -25,16 +30,10 @@ sub destdir { shift->{_destdir} } sub tempfile { shift->{_tempfile} } sub rewind { seek shift->tempfile, 0, 0 } -sub error { - my $self = shift; - return $self->archive->error(@_); -} - -sub success { shift->archive->download_status } - sub extract { my $self = shift; - return $self->archive->error('unrecognized download format'); + $self->logger->error('unrecognized download format'); + return new SlackBuild::Download($self) } 1; |