This file is indexed.

/usr/bin/debconf is in debconf 1.5.49.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/perl -w

=head1 NAME

debconf - run a debconf-using program

=cut

=head1 SYNOPSIS

 debconf [options] command [args]

=head1 DESCRIPTION

Debconf is a configuration system for Debian packages. For a debconf
overview and documentation for sysadmins, see L<debconf(7)> (in the
debconf-doc package).

The B<debconf> program runs a program under debconf's control, setting it up
to talk with debconf on stdio. The program's output is expected to be debconf
protocol commands, and it is expected to read result codes on stdin. See
L<debconf-devel(7)> for details about the debconf protocol.

The command to be run under debconf must be specified in a way that will
let your PATH find it.

This command is not the usual way that debconf is used. It's more typical
for debconf to be used via L<dpkg-preconfigure(8)> or L<dpkg-reconfigure(8)>.

=head1 OPTIONS

=over 4

=item B<-o>I<package>, B<--owner=>I<package>

Tell debconf what package the command it is running is a part of. This is
necessary to get ownership of registered questions right, and to support
unregister and purge commands properly.

=item B<-f>I<type>, B<--frontend=>I<type>

Select the frontend to use.

=item B<-p>I<value>, B<--priority=>I<value>

Specify the minimum priority of question that will be displayed.

=item B<--terse>

Enables terse output mode. This affects only some frontends.

=back

=head1 EXAMPLES

To debug a shell script that uses debconf, you might use:

 DEBCONF_DEBUG=developer debconf my-shell-prog

Or, you might use this:

 debconf --frontend=readline sh -x my-shell-prog

=head1 SEE ALSO

L<debconf-devel(7)>, L<debconf(7)>

=cut

use strict;
use Debconf::Db;
use Debconf::AutoSelect qw(:all);
use Debconf::Gettext;
use Debconf::Config;

# Find the end of the options for this command, and the beginning of the
# command to run, which may have arguments. Break those arguments out.
my (@argv, @command);
for (my $x=0; $x <= $#ARGV; $x++) {
	if ($ARGV[$x] =~ /^-(o|f|p|-(owner|frontend|priority))$/) {
		push @argv, $ARGV[$x++];
		push @argv, $ARGV[$x] if defined $ARGV[$x]; # skip option argument
		next;
	}
	elsif ($ARGV[$x] =~ /^-/) {
		push @argv, $ARGV[$x];
	}
	else {
		# end of arguments, start of command
		@command=@ARGV[$x..$#ARGV];
		last;
	}
}
@ARGV=@argv;
my $usage = gettext("Usage: debconf [options] command [args]");
my $owner='';
Debconf::Config->getopt($usage.gettext(qq{
  -o,  --owner=package		Set the package that owns the command.}),
        "o|owner=s"		=> \$owner,
);
die "$usage\n" unless @command;

Debconf::Db->load;
my $frontend=make_frontend();
my $confmodule=make_confmodule(@command);
$confmodule->owner($owner) if length $owner;

1 while ($confmodule->communicate);

my $code=$confmodule->exitcode;
$frontend->shutdown;
$confmodule->finish;
Debconf::Db->save;
exit $code;

=head1 AUTHOR

Joey Hess <joeyh@debian.org>

=cut