summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm
diff options
context:
space:
mode:
Diffstat (limited to 'beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm')
-rw-r--r--beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm90
1 files changed, 90 insertions, 0 deletions
diff --git a/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm b/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm
new file mode 100644
index 0000000..17a2132
--- /dev/null
+++ b/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm
@@ -0,0 +1,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