diff options
Diffstat (limited to 'beagle/debian-rfs/usr/share/perl5/Debconf/Question.pm')
| -rw-r--r-- | beagle/debian-rfs/usr/share/perl5/Debconf/Question.pm | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/beagle/debian-rfs/usr/share/perl5/Debconf/Question.pm b/beagle/debian-rfs/usr/share/perl5/Debconf/Question.pm deleted file mode 100644 index 10a86b9..0000000 --- a/beagle/debian-rfs/usr/share/perl5/Debconf/Question.pm +++ /dev/null @@ -1,292 +0,0 @@ -#!/usr/bin/perl -w -# This file was preprocessed, do not edit! - - -package Debconf::Question; -use strict; -use Debconf::Db; -use Debconf::Template; -use Debconf::Iterator; -use Debconf::Log qw(:all); - - -use fields qw(name priority); - -our %question; - - -sub new { - my Debconf::Question $this=shift; - my $name=shift; - my $owner=shift; - my $type=shift || die "no type given for question"; - die "A question called \"$name\" already exists" - if exists $question{$name}; - unless (ref $this) { - $this = fields::new($this); - } - $this->{name}=$name; - return unless defined $this->addowner($owner, $type); - $this->flag('seen', 'false'); - return $question{$name}=$this; -} - - -sub get { - my Debconf::Question $this=shift; - my $name=shift; - return $question{$name} if exists $question{$name}; - if ($Debconf::Db::config->exists($name)) { - $this = fields::new($this); - $this->{name}=$name; - return $question{$name}=$this; - } - return undef; -} - - -sub iterator { - my $this=shift; - - my $real_iterator=$Debconf::Db::config->iterator; - return Debconf::Iterator->new(callback => sub { - return unless my $name=$real_iterator->iterate; - return $this->get($name); - }); -} - - -sub _expand_vars { - my $this=shift; - my $text=shift; - - return '' unless defined $text; - - my @vars=$Debconf::Db::config->variables($this->{name}); - - my $rest=$text; - my $result=''; - my $variable; - my $varval; - my $escape; - while ($rest =~ m/^(.*?)(\\)?\${([^{}]+)}(.*)$/sg) { - $result.=$1; # copy anything before the variable - $escape=$2; - $variable=$3; - $rest=$4; # continue trying to expand rest of text - if (defined $escape && length $escape) { - $result.="\${$variable}"; - } - else { - $varval=$Debconf::Db::config->getvariable($this->{name}, $variable); - $result.=$varval if defined($varval); # expand the variable - } - } - $result.=$rest; # add on anything that's left. - - return $result; -} - - -sub description { - my $this=shift; - return $this->_expand_vars($this->template->description); -} - - -sub extended_description { - my $this=shift; - return $this->_expand_vars($this->template->extended_description); -} - - -sub choices { - my $this=shift; - - return $this->_expand_vars($this->template->choices); -} - - -sub choices_split { - my $this=shift; - - my @items; - my $item=''; - for my $chunk (split /(\\[, ]|,\s+)/, $this->choices) { - if ($chunk=~/^\\([, ])$/) { - $item.=$1; - } elsif ($chunk=~/^,\s+$/) { - push @items, $item; - $item=''; - } else { - $item.=$chunk; - } - } - push @items, $item if $item ne ''; - return @items; -} - - -sub variable { - my $this=shift; - my $var=shift; - - if (@_) { - return $Debconf::Db::config->setvariable($this->{name}, $var, shift); - } - else { - return $Debconf::Db::config->getvariable($this->{name}, $var); - } -} - - -sub flag { - my $this=shift; - my $flag=shift; - - if ($flag eq 'isdefault') { - debug developer => "The isdefault flag is deprecated, use the seen flag instead"; - if (@_) { - my $value=(shift eq 'true') ? 'false' : 'true'; - $Debconf::Db::config->setflag($this->{name}, 'seen', $value); - } - return ($Debconf::Db::config->getflag($this->{name}, 'seen') eq 'true') ? 'false' : 'true'; - } - - if (@_) { - return $Debconf::Db::config->setflag($this->{name}, $flag, shift); - } - else { - return $Debconf::Db::config->getflag($this->{name}, $flag); - } -} - - -sub value { - my $this = shift; - - unless (@_) { - my $ret=$Debconf::Db::config->getfield($this->{name}, 'value'); - return $ret if defined $ret; - return $this->template->default if ref $this->template; - } else { - return $Debconf::Db::config->setfield($this->{name}, 'value', shift); - } -} - - -sub value_split { - my $this=shift; - - my $value=$this->value; - $value='' if ! defined $value; - my @items; - my $item=''; - for my $chunk (split /(\\[, ]|,\s+)/, $value) { - if ($chunk=~/^\\([, ])$/) { - $item.=$1; - } elsif ($chunk=~/^,\s+$/) { - push @items, $item; - $item=''; - } else { - $item.=$chunk; - } - } - push @items, $item if $item ne ''; - return @items; -} - - -sub addowner { - my $this=shift; - - return $Debconf::Db::config->addowner($this->{name}, shift, shift); -} - - -sub removeowner { - my $this=shift; - - my $template=$Debconf::Db::config->getfield($this->{name}, 'template'); - return unless $Debconf::Db::config->removeowner($this->{name}, shift); - if (length $template and - not $Debconf::Db::config->exists($this->{name})) { - $Debconf::Db::templates->removeowner($template, $this->{name}); - delete $question{$this->{name}}; - } -} - - -sub owners { - my $this=shift; - - return join(", ", sort($Debconf::Db::config->owners($this->{name}))); -} - - -sub template { - my $this=shift; - if (@_) { - my $oldtemplate=$Debconf::Db::config->getfield($this->{name}, 'template'); - my $newtemplate=shift; - if (not defined $oldtemplate or $oldtemplate ne $newtemplate) { - $Debconf::Db::templates->removeowner($oldtemplate, $this->{name}) - if defined $oldtemplate and length $oldtemplate; - - $Debconf::Db::config->setfield($this->{name}, 'template', $newtemplate); - - $Debconf::Db::templates->addowner($newtemplate, $this->{name}, - $Debconf::Db::templates->getfield($newtemplate, "type")); - } - } - return Debconf::Template->get( - $Debconf::Db::config->getfield($this->{name}, 'template')); -} - - -sub name { - my $this=shift; - - return $this->{name}; -} - - -sub priority { - my $this=shift; - - $this->{priority}=shift if @_; - - return $this->{priority}; -} - - -sub AUTOLOAD { - (my $field = our $AUTOLOAD) =~ s/.*://; - - no strict 'refs'; - *$AUTOLOAD = sub { - my $this=shift; - - if (@_) { - return $Debconf::Db::config->setfield($this->{name}, $field, shift); - } - my $ret=$Debconf::Db::config->getfield($this->{name}, $field); - unless (defined $ret) { - $ret = $this->template->$field() if ref $this->template; - } - if (defined $ret) { - if ($field =~ /^(?:description|extended_description|choices)-/i) { - return $this->_expand_vars($ret); - } else { - return $ret; - } - } - }; - goto &$AUTOLOAD; -} - -sub DESTROY { -} - - -1 |
