File: Noninteractive.pm

package info (click to toggle)
debconf 1.5.91
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,180 kB
  • sloc: perl: 8,500; sh: 262; python: 182; makefile: 144
file content (79 lines) | stat: -rw-r--r-- 1,289 bytes parent folder | download
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