CLI-Driver
view release on metacpan or search on metacpan
lib/CLI/Driver/CommonRole.pm view on Meta::CPAN
package CLI::Driver::CommonRole;
use Modern::Perl;
use Moose::Role;
use namespace::autoclean;
use Kavorka 'method';
use Data::Printer alias => 'pdump';
use Devel::Confess;
use Capture::Tiny 'capture';
use Time::localtime;
#########################################################################################
has verbosity => (
is => 'rw',
isa => 'Num',
lazy => 1,
builder => '_build_verbosity',
);
#########################################################################################
method chdir (Str $dir) {
$self->verbose3("chdir($dir)");
chdir($dir) or confess "failed to chdir to $dir: $!";
}
method die (Str $str) {
chomp $str;
die "[ERROR] $str\n";
}
method fatal (Str $str, Num $frames? = 0) {
chomp $str;
my $caller = '';
if ($frames) {
$caller = sprintf " %s", ( caller($frames) )[3];
}
printf STDERR "[FATAL%s] $str\n", $caller;
exit 1;
}
method localdatetime ($time = time) {
my $l = localtime($time);
my $str = sprintf(
'%04d-%02d-%02d %02d:%02d:%02d',
$l->year + 1900,
$l->mon + 1,
$l->mday, $l->hour, $l->min, $l->sec
);
return $str;
}
method str_to_bool (Str|Undef $str) {
if (defined $str) {
if ($str =~ /^true$/i or $str =~ /^yes$/i or $str eq '1') {
( run in 0.513 second using v1.01-cache-2.11-cpan-39bf76dae61 )