App-Task

 view release on metacpan or  search on metacpan

lib/App/Task.pm  view on Meta::CPAN

        {
            autoflush         => { stdout => 1, stderr => 1 },
            carp_open3_errors => 1,
            close_stdin       => 1,
        }
    );

    return $rv;
}

sub _escape {
    my ( $str, $leave_slashes ) = @_;

    $str =~ s/\\/\\\\/g unless $leave_slashes;
    $str =~ s/\n/\\n/g;
    $str =~ s/\t/\\t/g;

    return $str;
}

sub _indent {

lib/App/Task.pm  view on Meta::CPAN

    local *ORIGOUT = *ORIGOUT;
    local *ORIGERR = *ORIGERR;

    my ( $o, $e ) = tie_task();

    my $task = $code;
    my $type = ref($code);
    if ( $type eq 'ARRAY' ) {
        my $disp = join " ", map {
            my $copy = "$_";
            $copy = _escape( $copy, 1 );
            if ( $copy =~ m/ / ) { $copy =~ s/'/\\'/g; $copy = "'$copy'" }
            $copy
        } @{$code};
        if ( $ENV{App_Task_DRYRUN} ) {
            $task = sub { print "(DRYRUN) >_ $disp\n" };
        }
        else {
            $task = $cmdhr->{fatal} ? sub { _sys( @{$code} ) or die "`$disp` did not exit cleanly: $?\n" } : sub { _sys( @{$code} ) };
        }

    }
    elsif ( !$type ) {
        my $disp = _escape( $code, 0 );
        if ( $ENV{App_Task_DRYRUN} ) {
            $task = sub { print "(DRYRUN) >_ $disp\n" };
        }
        else {
            $task = $cmdhr->{fatal} ? sub { _sys($code) or die "`$disp` did not exit cleanly: $?\n" } : sub { _sys($code) };
        }
    }

    my $cur_depth = $depth;
    local $depth = $depth + 1;



( run in 0.339 second using v1.01-cache-2.11-cpan-73692580452 )