View file File name : debconf-show Content :#!/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; } } } }