# -*- coding: utf-8 -*-
# Copyright (C) 2011-2012, 2014 Rocky Bernstein <rocky@cpan.org>
use warnings; no warnings 'redefine'; no warnings 'once';
use rlib '../../../../..';
package Devel::Trepan::CmdProcessor::Command::Show::Interactive;
use Devel::Trepan::CmdProcessor::Command::Subcmd::Core;
@ISA = qw(Devel::Trepan::CmdProcessor::Command::ShowBoolSubcmd);
# Values inherited from parent
use vars @Devel::Trepan::CmdProcessor::Command::Subcmd::SUBCMD_VARS;
=pod
=head2 Synopsis:
=cut
our $HELP = <<"EOH";
=pod
B<show interactive>
Show whether debugger input is a terminal.
=cut
EOH
our $SHORT_HELP = "Show whether debugger input is a terminal";
our $MIN_ABBREV = length('inter');
sub run($$)
{
my ($self, $args) = @_;
my $proc = $self->{proc};
my $intf = $proc->{interfaces}->[-1];
my $bool = $intf->is_interactive();
my $msg = sprintf("Debugger's interactive mode is %s.",
$self->show_onoff($bool));
$proc->msg($msg);
if ($bool) {
$bool = $intf->{input}->can("have_term_readline") &&
$intf->{input}->have_term_readline();
$msg = sprintf("Terminal Readline capability is %s.",
$self->show_onoff(!!$bool));
$proc->msg($msg);
}
}
unless (caller) {
# Demo it.
# require_relative '../../mock'
# # FIXME: DRY the below code
# my ($dbgr, $cmd) = MockDebugger::setup('show');
# $subcommand = __PACKAGE__->new(cmd);
# $testcmdMgr = Trepan::Subcmd->new(subcommand);
# $subcommand->run_show_bool();
# $subcommand->summary_help($NAME);
}
1;