#!/usr/bin/perl -w # This file was preprocessed, do not edit! use strict; use Getopt::Long; use Debconf::Log qw{:all}; use Debconf::Db; use Debconf::DbDriver; use Debconf::DbDriver::Backup; sub usage { print STDERR <makedriver(%config); } elsif (%config) { warn "ignoring command line config data before $_[1]"; } %config=(); } $config{$field}=$value; } GetOptions( "pattern|p=s" => \$pattern, "config|c=s" => \&config, "owner-pattern=s" => \$owner_pattern, ) || usage(); Debconf::Db->makedriver(%config) if %config; my $srcname=shift || usage(); my $destname=shift || usage(); Debconf::Db->load; my $src=Debconf::DbDriver->driver($srcname); die "$0: source database, \"$srcname\" does not exist\n" unless ref $src; my $dest=Debconf::DbDriver->driver($destname); die "$0: destination database, \"$destname\" does not exist\n" unless ref $dest; my $copier=Debconf::DbDriver::Backup->new( db => $src, backupdb => $dest, name => 'copier'); my $i=$copier->iterator; while (my $item=$i->iterate) { next unless $item =~ /$pattern/; if (defined $owner_pattern) { my $fit_owner = 0; my $owner; foreach $owner ($src->owners($item)){ $fit_owner = 1 if $owner =~ /$owner_pattern/; } next unless $fit_owner; } $copier->copy($item, $src, $dest); } $copier->shutdown;