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 )