/usr/share/perl5/Pristine/Tar/Delta/Tarball.pm is in pristine-tar 1.42.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #!/usr/bin/perl
# pristine-tar delta files formatted as tarballs
package Pristine::Tar::Delta::Tarball;
use Pristine::Tar;
use Pristine::Tar::Delta;
use File::Basename;
use warnings;
use strict;
sub write {
my $class = shift;
my $deltafile = shift;
my $delta = shift;
my $tempdir = tempdir();
foreach my $field (keys %$delta) {
if (Pristine::Tar::Delta::is_filename($field)) {
link($delta->{$field}, "$tempdir/$field")
|| die "link $tempdir/$field: $!";
} else {
open(my $out, ">", "$tempdir/$field") || die "$tempdir/$field: $!";
print $out $delta->{$field} . "\n";
close $out;
}
}
doit("tar", "czf", $deltafile, "-C", $tempdir, keys %$delta);
return $delta;
}
sub read {
my $class = shift;
my $deltafile = shift;
my $tempdir = tempdir();
doit("tar", "xf", File::Spec->rel2abs($deltafile), "-C", $tempdir);
my %delta;
foreach my $file (glob("$tempdir/*")) {
if (-f $file) {
my $field = basename($file);
if (Pristine::Tar::Delta::is_filename($field)) {
$delta{$field} = $file;
} else {
open(my $in, "<", $file) || die "$file: $!";
{
local $/ = undef;
$delta{$field} = <$in>;
}
chomp $delta{$field};
close $in;
}
}
}
return \%delta;
}
1
|