diff options
Diffstat (limited to 'beagle/debian-rfs/usr/share/perl5/Debconf/Client/ConfModule.pm')
| -rw-r--r-- | beagle/debian-rfs/usr/share/perl5/Debconf/Client/ConfModule.pm | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/beagle/debian-rfs/usr/share/perl5/Debconf/Client/ConfModule.pm b/beagle/debian-rfs/usr/share/perl5/Debconf/Client/ConfModule.pm deleted file mode 100644 index 30bd2d9..0000000 --- a/beagle/debian-rfs/usr/share/perl5/Debconf/Client/ConfModule.pm +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/perl -w - -=head1 NAME - -Debconf::Client::ConfModule - client module for ConfModules - -=head1 SYNOPSIS - - use Debconf::Client::ConfModule ':all'; - version('2.0'); - my $capb=capb('backup'); - input("medium", "foo/bar"); - my @ret=go(); - if ($ret[0] == 30) { - # Back button pressed. - ... - } - ... - -=head1 DESCRIPTION - -This is a module to ease writing ConfModules for Debian's configuration -management system. It can communicate with a FrontEnd via the debconf -protocol (which is documented in full in the debconf_specification in -Debian policy). - -The design is that each command in the protocol is represented by one -function in this module (with the name lower-cased). Call the function and -pass in any parameters you want to follow the command. If the function is -called in scalar context, it will return any textual return code. If it is -called in list context, an array consisting of the numeric return code and -the textual return code will be returned. - -This module uses Exporter to export all functions it defines. To import -everything, simply import ":all". - -=over 4 - -=cut - -package Debconf::Client::ConfModule; -use strict; -use base qw(Exporter); - -# List all valid commands here. -our @EXPORT_OK=qw(version capb stop reset title input beginblock endblock go - unset set get register unregister clear previous_module - start_frontend fset fget subst purge metaget visible exist - settitle info progress data x_loadtemplatefile); - -# Import :all to get everything. -our %EXPORT_TAGS = (all => [@EXPORT_OK]); - -# Set up valid command lookup hash. -my %commands; -map { $commands{uc $_}=1; } @EXPORT_OK; - -# Unbuffered output is required. -$|=1; - -=item import - -Ensure that a FrontEnd is running. It's a little hackish. If -DEBIAN_HAS_FRONTEND is set, a FrontEnd is assumed to be running. -If not, one is started up automatically and stdin and out are -connected to it. Note that this function is always run when the -module is loaded in the usual way. - -=cut - -sub import { - if (! $ENV{DEBIAN_HAS_FRONTEND}) { - $ENV{PERL_DL_NONLAZY}=1; - if (exists $ENV{DEBCONF_USE_CDEBCONF} and - $ENV{DEBCONF_USE_CDEBCONF} ne '') { - exec "/usr/lib/cdebconf/debconf", $0, @ARGV; - } else { - exec "/usr/share/debconf/frontend", $0, @ARGV; - } - } - - # Make the Exporter still work. - Debconf::Client::ConfModule->export_to_level(1, @_); - - # A truly gross hack. This is only needed if - # /usr/share/debconf/confmodule is loaded, and then this - # perl module is used. In that case, this module needs to write - # to fd #3, rather than stdout. See changelog 0.3.74. - if (exists $ENV{DEBCONF_REDIR} && $ENV{DEBCONF_REDIR}) { - open(STDOUT,">&3"); - } -} - -=item stop - -The frontend doesn't send a return code here, so we cannot try to read it -or we'll block. - -=cut - -sub stop { - print "STOP\n"; - return; -} - -=item AUTOLOAD - -Creates handler functions for commands on the fly. - -=cut - -sub AUTOLOAD { - my $command = uc our $AUTOLOAD; - $command =~ s|.*:||; # strip fully-qualified portion - - die "Unsupported command `$command'." - unless $commands{$command}; - - no strict 'refs'; - *$AUTOLOAD = sub { - my $c=join (' ', $command, @_); - - # Newlines in input can really badly confuse the protocol, so - # detect and warn. - if ($c=~m/\n/) { - warn "Warning: Newline present in parameters passed to debconf.\n"; - warn "This will probably cause strange things to happen!\n"; - } - - print "$c\n"; - my $ret=<STDIN>; - chomp $ret; - my @ret=split(/\s/, $ret, 2); - if ($ret[0] eq '1') { - # escaped data - local $_; - my $unescaped=''; - for (split /(\\.)/, $ret[1]) { - s/\\(.)/$1 eq "n" ? "\n" : $1/eg; - $unescaped.=$_; - } - $ret[0]='0'; - $ret[1]=$unescaped; - } - return @ret if wantarray; - return $ret[1]; - }; - goto &$AUTOLOAD; -} - -=back - -=head1 SEE ALSO - -The debconf specification -(/usr/share/doc/debian-policy/debconf_specification.txt.gz). - -=head1 AUTHOR - -Joey Hess <joeyh@debian.org> - -=cut - -1 |
