From 6f978739c870e34fd3bd70630b3b530e447a0f6c Mon Sep 17 00:00:00 2001 From: Flavio Poletti Date: Tue, 27 Aug 2013 14:53:27 +0200 Subject: [PATCH] coped with empty archives --- remote | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/remote b/remote index 19de5ac..7190b2c 100755 --- a/remote +++ b/remote @@ -361,17 +361,21 @@ sub initialise { sub print_filelist { my $self = shift; - open my $tfh, '|-', $self->{tar}, $self->{_list_command}, '-' - or die "open() on pipe to tar: $OS_ERROR"; - main::copy($self->{fh}, $tfh, $self->{size}); + if ($self->{size}) { + open my $tfh, '|-', $self->{tar}, $self->{_list_command}, '-' + or die "open() on pipe to tar: $OS_ERROR"; + main::copy($self->{fh}, $tfh, $self->{size}); + } return $self; } sub extract { my $self = shift; - open my $tfh, '|-', $self->{tar}, $self->{_extract_command}, '-' - or die "open() on pipe to tar: $OS_ERROR"; - main::copy($self->{fh}, $tfh, $self->{size}); + if ($self->{size}) { + open my $tfh, '|-', $self->{tar}, $self->{_extract_command}, '-' + or die "open() on pipe to tar: $OS_ERROR"; + main::copy($self->{fh}, $tfh, $self->{size}); + } return $self; } @@ -381,25 +385,31 @@ use English qw( -no_match_vars ); sub initialise { my $self = shift; - my $data = main::full_read($self->{fh}, $self->{size}); - open my $fh, '<', \$data or die "open() on internal variable: $OS_ERROR"; + if ($self->{size}) { + my $data = main::full_read($self->{fh}, $self->{size}); + open my $fh, '<', \$data or die "open() on internal variable: $OS_ERROR"; - require Archive::Tar; - $self->{_tar} = Archive::Tar->new(); - $self->{_tar}->read($fh); + require Archive::Tar; + $self->{_tar} = Archive::Tar->new(); + $self->{_tar}->read($fh); + } return $self; } sub print_filelist { my $self = shift; - print {*STDOUT} " $_\n" for $self->{_tar}->list_files(); + if ($self->{size}) { + print {*STDOUT} " $_\n" for $self->{_tar}->list_files(); + } return $self; } sub extract { my $self = shift; - $self->{_tar}->extract(); + if ($self->{size}) { + $self->{_tar}->extract(); + } return $self; } -- 2.11.4.GIT