EVERYTHING FROM THE OTHER REPO
This commit is contained in:
Executable
+102
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/perl
|
||||
# This file was preprocessed, do not edit!
|
||||
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Debconf::Db;
|
||||
use Debconf::Template;
|
||||
use Debconf::Question;
|
||||
use Getopt::Long;
|
||||
|
||||
sub usage {
|
||||
print STDERR <<EOF;
|
||||
Usage:
|
||||
debconf-show packagename [...] [--db=dbname]
|
||||
debconf-show --listowners [--db=dbname]
|
||||
debconf-show --listdbs
|
||||
EOF
|
||||
exit(1);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user