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
|
#!/usr/bin/perl
=head1 NAME
Debconf::FrontEnd::Noninteractive - non-interactive FrontEnd
=cut
package Debconf::FrontEnd::Noninteractive;
use warnings;
use strict;
use Debconf::Encoding qw(width wrap);
use Debconf::Gettext;
use base qw(Debconf::FrontEnd);
=head1 DESCRIPTION
This FrontEnd is completly non-interactive.
=cut
=item init
tty not needed
=cut
sub init {
my $this=shift;
$this->SUPER::init(@_);
$this->need_tty(0);
}
=item display
Displays text wrapped to fit on the screen. If a title has been set and has
not yet been displayed, displays it first.
=cut
sub display {
my $this=shift;
my $text=shift;
# Hardcode the width because we might not have any console
$Debconf::Encoding::columns=76;
$this->display_nowrap(wrap('','',$text));
}
=item display_nowrap
Displays text. If a title has been set and has not yet been displayed,
displays it first.
=cut
sub display_nowrap {
my $this=shift;
my $text=shift;
# Silly split elides trailing null matches.
my @lines=split(/\n/, $text);
push @lines, "" if $text=~/\n$/;
# Add to the display any pending title.
my $title=$this->title;
if (length $title) {
unshift @lines, $title, ('-' x width $title), '';
$this->title('');
}
foreach (@lines) {
print "$_\n";
}
}
1
|