summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/App/BorgRestore.pm3
-rw-r--r--lib/App/BorgRestore/Borg.pm9
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/App/BorgRestore.pm b/lib/App/BorgRestore.pm
index 1fb5124..4ca2716 100644
--- a/lib/App/BorgRestore.pm
+++ b/lib/App/BorgRestore.pm
@@ -314,7 +314,7 @@ sub handle_added_archives {
$self->debug(sprintf("Adding archive %s", $archive));
- my $proc = $self->{borg}->list_archive($archive, sub {
+ $self->{borg}->list_archive($archive, sub {
my $line = shift;
# roll our own parsing of timestamps for speed since we will be parsing
# a huge number of lines here
@@ -325,7 +325,6 @@ sub handle_added_archives {
$self->add_path_to_hash($lookuptable, $+{path}, $time);
}
});
- $proc->finish() or die "borg list returned $?";
$self->debug(sprintf("Finished parsing borg output after %.5fs. Adding to db", Time::HiRes::gettimeofday - $start));
diff --git a/lib/App/BorgRestore/Borg.pm b/lib/App/BorgRestore/Borg.pm
index 412269f..8b4e953 100644
--- a/lib/App/BorgRestore/Borg.pm
+++ b/lib/App/BorgRestore/Borg.pm
@@ -43,7 +43,14 @@ sub list_archive {
my $archive = shift;
my $cb = shift;
- return start [qw(borg list --list-format), '{isomtime} {path}{NEWLINE}', "::".$archive], ">", new_chunker, $cb;
+ open (my $fh, '-|', 'borg', qw/list --list-format/, '{isomtime} {path}{NEWLINE}', "::".$archive);
+ while (<$fh>) {
+ $cb->($_);
+ }
+
+ # this is slow
+ #return start [qw(borg list --list-format), '{isomtime} {path}{NEWLINE}', "::".$archive], ">", new_chunker, $cb;
+ #$proc->finish() or die "borg list returned $?";
}
1;