App-RemoteCommand

 view release on metacpan or  search on metacpan

lib/App/RemoteCommand/Util.pm  view on Meta::CPAN

package App::RemoteCommand::Util;
use v5.24;
use warnings;
use experimental qw(lexical_subs signatures);

use Exporter 'import';
our @EXPORT_OK = qw(prompt DEBUG logger);

use constant DEBUG => $ENV{PERL_RCOMMAND_DEBUG} ? 1 : 0;

use Term::ReadKey 'ReadMode';

sub logger (@args) {
    my $msg = @args == 1 ? $args[0] : sprintf shift(@args), @args;
    warn " | $msg\n";
}

sub prompt ($msg) {
    local $| = 1;
    print $msg;
    ReadMode 'noecho', \*STDIN;
    my $SIGNAL = "Catch SIGINT\n";
    my $answer;
    eval {
        local $SIG{INT} = sub (@) { die $SIGNAL };
        $answer = <STDIN>;
    };
    my $error = $@;
    ReadMode 'restore', \*STDIN;
    print "\n";
    die $error if $error;
    chomp $answer;
    $answer;
}

1;



( run in 0.870 second using v1.01-cache-2.11-cpan-6aa56a78535 )