summaryrefslogtreecommitdiffstats
path: root/lib/App/BorgRestore.pm
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2017-03-03 20:13:55 +0100
committerFlorian Pritz <bluewind@xinu.at>2017-03-03 23:16:17 +0100
commit9f2d12b96a0cb093fe3d85b60a7c6151d957bc0c (patch)
tree32b184116dab2f6f5ee1472e42a7aeb5370ab8cf /lib/App/BorgRestore.pm
parentbc8bd4c00183228f675fda77e571d66671fcaca1 (diff)
downloadApp-BorgRestore-9f2d12b96a0cb093fe3d85b60a7c6151d957bc0c.tar.gz
App-BorgRestore-9f2d12b96a0cb093fe3d85b60a7c6151d957bc0c.tar.xz
Pass sub to IPC::Run instead of using a typeglob
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'lib/App/BorgRestore.pm')
-rw-r--r--lib/App/BorgRestore.pm8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/App/BorgRestore.pm b/lib/App/BorgRestore.pm
index 400c2fd..904c6b8 100644
--- a/lib/App/BorgRestore.pm
+++ b/lib/App/BorgRestore.pm
@@ -314,17 +314,17 @@ sub handle_added_archives {
$self->debug(sprintf("Adding archive %s", $archive));
- my $proc = $self->{borg}->list_archive($archive, \*OUT);
- while (<OUT>) {
+ my $proc = $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
# example timestamp: "Wed, 2016-01-27 10:31:59"
- if (m/^.{4} (?<year>....)-(?<month>..)-(?<day>..) (?<hour>..):(?<minute>..):(?<second>..) (?<path>.+)$/) {
+ if ($line =~ m/^.{4} (?<year>....)-(?<month>..)-(?<day>..) (?<hour>..):(?<minute>..):(?<second>..) (?<path>.+)$/) {
my $time = POSIX::mktime($+{second},$+{minute},$+{hour},$+{day},$+{month}-1,$+{year}-1900);
#$self->debug(sprintf("Adding path %s with time %s", $+{path}, $time));
$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));