#!/usr/bin/perl =head1 NAME debconf-get-selections =head1 SYNOPSIS debconf-get-selections [--installer] =head1 DESCRIPTION Output the current debconf database in a format understandable by debconf-set-selections. To dump the debconf database of the debian-installer, from /var/log/debian-installer/cdebconf, use the --installer parameter. =cut use strict; use warnings; use Debconf::Db; use Debconf::Template; use Debconf::Question; use Data::Dumper; Debconf::Db->load(readonly => "true"); my $defaultowner="unknown"; if (@ARGV && $ARGV[0] eq '--installer') { # A bit of a hack.. my $di_path="/var/log/debian-installer/cdebconf"; $Debconf::Db::config=Debconf::Db->makedriver( driver => "File", name => "di_questions", filename => "$di_path/questions.dat", readonly => "true", ); $Debconf::Db::templates=Debconf::Db->makedriver( driver => "File", name => "di_templates", filename => "$di_path/templates.dat", readonly => "true", ); $defaultowner="d-i"; } my $qi = Debconf::Question->iterator; while (my $q = $qi->iterate) { my ($name, $type, $value) = ($q->name, $q->type, $q->value); next if ($type eq 'text' || $type eq 'note' || $type eq 'error' || $type eq 'title'); print "# ".$q->description."\n"; next unless $q->flag('seen') eq 'true'; if ($q->owners) { foreach my $owner (split ", ", $q->owners) { print "$owner\t$name\t$type\t$value\n"; } } else { print "$defaultowner\t$name\t$type\t$value\n"; } } =head1 AUTHOR Petter Reinholdtsen =cut