NAME
IO::Term::Status - print log lines to a terminal with a running status
bar
SYNOPSIS
use IO::Term::Status;
my $io = IO::Term::Status->new_for_stdout;
$io->set_status( "Running" );
my @items = ...;
foreach my $idx ( 0 .. $#items ) {
$io->set_status( sprintf "Running | %d of %d", $idx+1, scalar @items );
my $item = $items[$idx];
$io->print_line( "Processing item $item..." );
...
}
$io->set_status( "" ); # Clear the status line before exiting
DESCRIPTION
This module provides a subclass of IO::Handle for maintaining a running
status display on the terminal. It presumes the terminal can handle
basic ANSI control characters (thus is not suitable for printing to log
files, etc).
The "status bar" consists of a single additional line of text, printed
below the current log of output. More lines of regular log can be
printed using the "print_line" method, which maintains the running
status bar below the output.
With String::Tagged
If the String::Tagged::Terminal module is available, then the status
string can set to an instance of String::Tagged, obeying the
String::Tagged::Formatting tag conventions. This will be converted to
terminal output.
As an extra convenience, whatever the prevailing background colour is
at the end of the string will be preserved for line-erase purposes,
meaning that colour will extend the entire width of the status bar
line.
CONSTRUCTORS
new
$io = IO::Term::Status->new
Constructs a new IO::Handle subclassed instance of this type.
new_for_stdout
$io = IO::Term::Status->new_for_stdout
Constructs a new instance wrapping the STDOUT filehandle, with
autoflush turned on. This is usually what you want for printing regular
output to the controlling terminal.
METHODS
print_line
$io->print_line( @args )
Prints a new line from the given arguments, joined as a string. @args
should not contain the terminating linefeed.
This line is printed above any pending partial line.
more_partial
$io->more_partial( $more )
Adds more text to the pending partial line displayed at the bottom,
after any complete lines.
replace_partial
$io->replace_partial( $more )
Replace the content of the pending partial line displayed at the
bottom.
finish_partial
$io->finish_partial( $more )
Adds more text to the pending partial line then turns it into a
complete line that gets printed.
set_status
$io->set_status( $status )
Sets the status message string.
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>