diff options
| author | Manuel Traut <manut@mecka.net> | 2011-04-29 09:09:27 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@mecka.net> | 2011-04-29 09:09:27 +0200 |
| commit | 5238ad5a0c4a9e1c8cd036f5de4055e39bd71297 (patch) | |
| tree | 4407c087b9fb5432b1dc11e70b52dacfa0b99feb /beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/Pipe.pm | |
| parent | 60ead65c41afba7e6aa4bbcf507a1d52f7a8fe9f (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.pm | 90 |
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 |
