summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/usr/bin/debconf-show
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/bin/debconf-show
parent60ead65c41afba7e6aa4bbcf507a1d52f7a8fe9f (diff)
added debootstrap stuff
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'beagle/debian-rfs/usr/bin/debconf-show')
-rwxr-xr-xbeagle/debian-rfs/usr/bin/debconf-show103
1 files changed, 103 insertions, 0 deletions
diff --git a/beagle/debian-rfs/usr/bin/debconf-show b/beagle/debian-rfs/usr/bin/debconf-show
new file mode 100755
index 0000000..b47fef4
--- /dev/null
+++ b/beagle/debian-rfs/usr/bin/debconf-show
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+# This file was preprocessed, do not edit!
+
+
+sub usage {
+ print STDERR <<EOF;
+Usage:
+ debconf-show packagename [...] [--db=dbname]
+ debconf-show --listowners [--db=dbname]
+ debconf-show --listdbs
+EOF
+ exit(1);
+}
+
+
+use strict;
+use warnings;
+use Debconf::Db;
+use Debconf::Template;
+use Debconf::Question;
+use Getopt::Long;
+
+my $db='';
+my $listowners=0;
+my @packages;
+my $listdbs=0;
+
+GetOptions(
+ "db=s" => \$db,
+ "listowners" => \$listowners,
+ "listdbs" => \$listdbs,
+) || usage();
+
+unless ($listowners or $listdbs) {
+ @packages=@ARGV;
+ usage() unless @packages;
+}
+
+Debconf::Db->load(readonly => 'true');
+
+my %drivers = %Debconf::DbDriver::drivers;
+my $conf = Debconf::Config->config;
+
+sub tree {
+ my $node=shift;
+ my $string=shift || "";
+ my $driver = Debconf::DbDriver->driver($node);
+ my $name = $driver->{name};
+
+ $string = $string.$name;
+ print $string."\n";
+
+ if ($driver->isa("Debconf::DbDriver::Stack")) {
+ $string=$string.'/';
+ map { tree($_->{name},$string) } @{$driver->{stack}};
+ }
+}
+
+if ($db) {
+ my $driver = $drivers{$db};
+ die $db.": unknown database" unless defined($driver);
+ $Debconf::Db::config = $driver;
+}
+
+my $qi=Debconf::Question->iterator;
+
+if ($listdbs) {
+ tree($conf);
+}
+elsif (@packages) {
+ while (my $q=$qi->iterate) {
+ foreach my $package (@packages) {
+ if (grep { $package eq $_} split(/, /, $q->owners)) {
+ if ($q->flag("seen") eq 'true') {
+ print "* ";
+ }
+ else {
+ print " ";
+ }
+ print $q->name.":";
+ if ($q->type eq 'password') {
+ print " (password omitted)";
+ }
+ elsif (length $q->value) {
+ print " ".$q->value;
+ }
+ print "\n";
+ }
+ }
+ }
+}
+elsif ($listowners) {
+ my %seen;
+ while (my $q=$qi->iterate) {
+ foreach (split(/, /, $q->owners)) {
+ unless ($seen{$_}) {
+ print "$_\n";
+ $seen{$_}=1;
+ }
+ }
+ }
+}
+