/usr/share/perl5/Debconf/DbDriver/Pipe.pm is in debconf 1.5.42ubuntu1.
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #!/usr/bin/perl -w
# This file was preprocessed, do not edit!
package Debconf::DbDriver::Pipe;
use strict;
use Debconf::Log qw(:all);
use base 'Debconf::DbDriver::Cache';
use fields qw(infd outfd format);
sub init {
my $this=shift;
$this->{format} = "822" unless exists $this->{format};
$this->error("No format specified") unless $this->{format};
eval "use Debconf::Format::$this->{format}";
if ($@) {
$this->error("Error setting up format object $this->{format}: $@");
}
$this->{format}="Debconf::Format::$this->{format}"->new;
if (not ref $this->{format}) {
$this->error("Unable to make format object");
}
my $fh;
if (defined $this->{infd}) {
if ($this->{infd} ne 'none') {
open ($fh, "<&=$this->{infd}") or
$this->error("could not open file descriptor #$this->{infd}: $!");
}
}
else {
open ($fh, '-');
}
$this->SUPER::init(@_);
debug "db $this->{name}" => "loading database";
if (defined $fh) {
while (! eof $fh) {
my ($item, $cache)=$this->{format}->read($fh);
$this->{cache}->{$item}=$cache;
}
close $fh;
}
}
sub shutdown {
my $this=shift;
return if $this->{readonly};
my $fh;
if (defined $this->{outfd}) {
if ($this->{outfd} ne 'none') {
open ($fh, ">&=$this->{outfd}") or
$this->error("could not open file descriptor #$this->{outfd}: $!");
}
}
else {
open ($fh, '>-');
}
if (defined $fh) {
$this->{format}->beginfile;
foreach my $item (sort keys %{$this->{cache}}) {
next unless defined $this->{cache}->{$item}; # skip deleted
$this->{format}->write($fh, $this->{cache}->{$item}, $item)
or $this->error("could not write to pipe: $!");
}
$this->{format}->endfile;
close $fh or $this->error("could not close pipe: $!");
}
return 1;
}
sub load {
return undef;
}
1
|