summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/PackageDir.pm
diff options
context:
space:
mode:
Diffstat (limited to 'beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/PackageDir.pm')
-rw-r--r--beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/PackageDir.pm170
1 files changed, 0 insertions, 170 deletions
diff --git a/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/PackageDir.pm b/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/PackageDir.pm
deleted file mode 100644
index a595c3f..0000000
--- a/beagle/debian-rfs/usr/share/perl5/Debconf/DbDriver/PackageDir.pm
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/usr/bin/perl -w
-# This file was preprocessed, do not edit!
-
-
-package Debconf::DbDriver::PackageDir;
-use strict;
-use Debconf::Log qw(:all);
-use IO::File;
-use Fcntl qw(:DEFAULT :flock);
-use Debconf::Iterator;
-use base 'Debconf::DbDriver::Directory';
-
-
-use fields qw(mode _loaded);
-
-
-sub init {
- my $this=shift;
-
- if (exists $this->{mode}) {
- $this->{mode} = oct($this->{mode});
- }
- else {
- $this->{mode} = 0600;
- }
- $this->SUPER::init(@_);
-}
-
-
-sub loadfile {
- my $this=shift;
- my $file=$this->{directory}."/".shift;
-
- return if $this->{_loaded}->{$file};
- $this->{_loaded}->{$file}=1;
-
- debug "db $this->{name}" => "loading $file";
- return unless -e $file;
-
- my $fh=IO::File->new;
- open($fh, $file) or $this->error("$file: $!");
- my @item = $this->{format}->read($fh);
- while (@item) {
- $this->cacheadd(@item);
- @item = $this->{format}->read($fh);
- }
- close $fh;
-}
-
-
-sub load {
- my $this=shift;
- my $item=shift;
- $this->loadfile($this->filename($item));
-}
-
-
-sub filename {
- my $this=shift;
- my $item=shift;
-
- if ($item =~ m!^([^/]+)(?:/|$)!) {
- return $1.$this->{extension};
- }
- else {
- $this->error("failed parsing item name \"$item\"\n");
- }
-}
-
-
-sub iterator {
- my $this=shift;
-
- my $handle;
- opendir($handle, $this->{directory}) ||
- $this->error("opendir: $!");
-
- while (my $file=readdir($handle)) {
- next if length $this->{extension} and
- not $file=~m/$this->{extension}/;
- next unless -f $this->{directory}."/".$file;
- next if $file eq '.lock' || $file =~ /-old$/;
- $this->loadfile($file);
- }
-
- $this->SUPER::iterator;
-}
-
-
-sub exists {
- my $this=shift;
- my $name=shift;
- my $incache=$this->Debconf::DbDriver::Cache::exists($name);
- return $incache if (!defined $incache or $incache);
- my $file=$this->{directory}.'/'.$this->filename($name);
- return unless -e $file;
-
- $this->load($name);
-
- return $this->Debconf::DbDriver::Cache::exists($name);
-}
-
-
-sub shutdown {
- my $this=shift;
-
- return if $this->{readonly};
-
- my (%files, %filecontents, %killfiles, %dirtyfiles);
- foreach my $item (keys %{$this->{cache}}) {
- my $file=$this->filename($item);
- $files{$file}++;
-
- if (! defined $this->{cache}->{$item}) {
- $killfiles{$file}++;
- delete $this->{cache}->{$item};
- }
- else {
- push @{$filecontents{$file}}, $item;
- }
-
- if ($this->{dirty}->{$item}) {
- $dirtyfiles{$file}++;
- $this->{dirty}->{$item}=0;
- }
- }
-
- foreach my $file (keys %files) {
- if (! $filecontents{$file} && $killfiles{$file}) {
- debug "db $this->{name}" => "removing $file";
- my $filename=$this->{directory}."/".$file;
- unlink $filename or
- $this->error("unable to remove $filename: $!");
- if (-e $filename."-old") {
- unlink $filename."-old" or
- $this->error("unable to remove $filename-old: $!");
- }
- }
- elsif ($dirtyfiles{$file}) {
- debug "db $this->{name}" => "saving $file";
- my $filename=$this->{directory}."/".$file;
-
- sysopen(my $fh, $filename."-new",
- O_WRONLY|O_TRUNC|O_CREAT,$this->{mode}) or
- $this->error("could not write $filename-new: $!");
- $this->{format}->beginfile;
- foreach my $item (@{$filecontents{$file}}) {
- $this->{format}->write($fh, $this->{cache}->{$item}, $item)
- or $this->error("could not write $filename-new: $!");
- }
- $this->{format}->endfile;
-
- $fh->flush or $this->error("could not flush $filename-new: $!");
- $fh->sync or $this->error("could not sync $filename-new: $!");
-
- if (-e $filename && $this->{backup}) {
- rename($filename, $filename."-old") or
- debug "db $this->{name}" => "rename failed: $!";
- }
- rename($filename."-new", $filename) or
- $this->error("rename failed: $!");
- }
- }
-
- $this->SUPER::shutdown(@_);
- return 1;
-}
-
-
-1