diff options
Diffstat (limited to 'beagle/debian-rfs/usr/share/debconf/frontend')
| -rwxr-xr-x | beagle/debian-rfs/usr/share/debconf/frontend | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/beagle/debian-rfs/usr/share/debconf/frontend b/beagle/debian-rfs/usr/share/debconf/frontend new file mode 100755 index 0000000..4fb0299 --- /dev/null +++ b/beagle/debian-rfs/usr/share/debconf/frontend @@ -0,0 +1,104 @@ +#!/usr/bin/perl -w +# This file was preprocessed, do not edit! + + +use strict; +use Debconf::Db; +use Debconf::Template; +use Debconf::AutoSelect qw(:all); +use Debconf::Log qw(:all); + +Debconf::Db->load; + +debug developer => "frontend started"; + +my $frontend=make_frontend(); + +shift @ARGV if $ARGV[0] eq '--'; + +my $package; +if ($ENV{DEBCONF_PACKAGE}) { + $package=$ENV{DEBCONF_PACKAGE}; +} +elsif ($ARGV[0]=~m!^.*/(.*?)\.(?:postinst|postrm|prerm)$!) { + $package=$1; +} +elsif (-e "/var/lib/dpkg/tmp.ci/control") { + open (CONTROL, "< /var/lib/dpkg/tmp.ci/control") + || die "Debconf: unable to open control file: $!"; + while (<CONTROL>) { + if (/^Package: (.*)/) { + $package=$1; + last; + } + } + close CONTROL; + if (! exists $ENV{PERL_DL_NONLAZY} || ! $ENV{PERL_DL_NONLAZY}) { + warn "PERL_DL_NONLAZY is not set, if debconf is running from a preinst script, this is not safe"; + } +} +else { + $package=''; + + debug developer => 'Trying to find a templates file..'; + sub trytemplate { + my $fn=shift; + debug developer => "Trying $fn"; + if (-e $fn) { + debug developer => "I guess it is $fn"; + Debconf::Template->load($fn, $package); + return 1; + } + else { + return; + } + } + + unless (trytemplate("$ARGV[0].templates")) { + unless ($ARGV[0]=~m/(.*)config$/ && trytemplate("${1}templates")) { + unless ($ARGV[0]=~m!^(?:.*/)?(.*)! && trytemplate("/usr/share/debconf/templates/${1}.templates")) { + debug developer => "Couldn't find a templates file." + } + } + } +} +debug developer => "frontend running, package name is $package"; +$frontend->default_title($package) if length $package; +$frontend->info(undef); + +if ($ARGV[0] =~/^(.*[.\/])(?:postinst|preinst)$/) { + my $base=$1; + + my $templates=$base."templates"; + Debconf::Template->load($templates, $package) + if -e $templates; + + my $config=$base."config"; + if (-e $config) { + my $version=$ARGV[2]; + if (! defined($version)) { + $version=''; + } + my $confmodule=make_confmodule($config, + "configure", $version); + + $confmodule->owner($package); + + 1 while ($confmodule->communicate); + + exit $confmodule->exitcode if $confmodule->exitcode > 0; + } +} + +my $confmodule=make_confmodule(@ARGV); + +$confmodule->owner($package); + +1 while ($confmodule->communicate); + +$frontend->shutdown; + +Debconf::Db->save; + +exit $confmodule->exitcode; + |
