home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/perl -w
- # This file was preprocessed, do not edit!
-
-
- package Debconf::AutoSelect;
- use strict;
- use Debconf::Gettext;
- use Debconf::ConfModule;
- use Debconf::Config;
- use Debconf::Log qw(:all);
- use base qw(Exporter);
- our @EXPORT_OK = qw(make_frontend make_confmodule);
- our %EXPORT_TAGS = (all => [@EXPORT_OK]);
-
-
- my %fallback=(
- 'Kde' => ['Dialog', 'Readline', 'Teletype'],
- 'Gnome' => ['Dialog', 'Readline', 'Teletype'],
- 'Web' => ['Dialog', 'Readline', 'Teletype'],
- 'Dialog' => ['Readline', 'Teletype'],
- 'Gtk' => ['Dialog', 'Readline', 'Teletype'],
- 'Readline' => ['Teletype', 'Dialog'],
- 'Editor' => ['Readline', 'Teletype'],
- 'Slang' => ['Dialog', 'Readline', 'Teletype'],
- 'Text' => ['Readline', 'Teletype', 'Dialog'],
-
- );
-
- my $frontend;
- my $type;
-
-
- sub make_frontend {
- my $script=shift;
- my $starttype=ucfirst($type);
- if (! defined $starttype || ! length $starttype) {
- $starttype = Debconf::Config->frontend;
- if ($starttype =~ /^[A-Z]/) {
- warn "Please do not capitalize the first letter of the debconf frontend.";
- }
- $starttype=ucfirst($starttype);
- }
-
- my $showfallback=0;
- foreach $type ($starttype, @{$fallback{$starttype}}, 'Noninteractive') {
- if (! $showfallback) {
- debug user => "trying frontend $type";
- }
- else {
- warn(sprintf(gettext("falling back to frontend: %s"), $type));
- }
- $frontend=eval qq{
- use Debconf::FrontEnd::$type;
- Debconf::FrontEnd::$type->new();
- };
- return $frontend if defined $frontend;
-
- warn sprintf(gettext("unable to initialize frontend: %s"), $type);
- $@=~s/\n.*//s;
- warn "($@)";
- $showfallback=1;
- }
-
- die sprintf(gettext("Unable to start a frontend: %s"), $@);
- }
-
-
- sub make_confmodule {
- my $confmodule=Debconf::ConfModule->new(frontend => $frontend);
-
- $confmodule->startup(@_) if @_;
-
- return $confmodule;
- }
-
-
- 1
-