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/bin/debconf-show | |
| parent | 60ead65c41afba7e6aa4bbcf507a1d52f7a8fe9f (diff) | |
added debootstrap stuff
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'beagle/debian-rfs/usr/bin/debconf-show')
| -rwxr-xr-x | beagle/debian-rfs/usr/bin/debconf-show | 103 |
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; + } + } + } +} + |
