summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm
diff options
context:
space:
mode:
authorManuel Traut <manut@mecka.net>2011-04-29 09:09:27 +0200
committerManuel Traut <manut@mecka.net>2011-04-29 09:09:27 +0200
commit5238ad5a0c4a9e1c8cd036f5de4055e39bd71297 (patch)
tree4407c087b9fb5432b1dc11e70b52dacfa0b99feb /beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm
parent60ead65c41afba7e6aa4bbcf507a1d52f7a8fe9f (diff)
added debootstrap stuff
Signed-off-by: Manuel Traut <manut@mecka.net>
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