App-karr
view release on metacpan or search on metacpan
lib/App/karr/Foundation.pm view on Meta::CPAN
if ( $self->dry_run ) {
$self->_append_log( $repo, "DRY-RUN (skipped)" );
return ( 0, '' );
}
my $log_file = $repo->child('.karr.log');
# Native pipe: the child writes stdout+stderr, the parent reads. The parent
# is the tee â it fans each chunk to the persistent log, the terminal (when
# streaming), and an in-memory buffer for error scanning. No external tee
# process to race, and the run's output is captured directly (no re-slurping
# the log via byte offsets).
pipe( my $reader, my $writer ) or croak "pipe failed: $!";
my $pid = fork;
croak "fork failed: $!" unless defined $pid;
if ( $pid == 0 ) {
# child
close $reader;
( run in 2.354 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )