App-column-run

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

    This utility is similar to using the Unix utility pr to columnate
    output, something like (in bash):

     % pr -T -m -w $COLUMNS <(command1 args...) <(command2 args...)

    except with the following differences:

    *   commands are run in sequence, not in parallel (although parallel
        execution is a TODO list item);

    *   all output are collected first, then displayed (although streaming
        output is a TODO list item);

    *   multiplexing STDIN to all commands;

    *   ANSI color and wide character handling;

    *   passing adjusted COLUMNS environment to commands so they can adjust
        output;

    *   passing common arguments and environment variables to all commands

lib/App/column/run.pm  view on Meta::CPAN

use strict;
use warnings;
use Log::ger;

use Text::Column::Util;

our %SPEC;

# TODO: color theme
# TODO: parallel execution
# TODO: streaming/immediate output

$SPEC{column_run} = {
    v => 1.1,
    summary => 'Run several commands and show their output in multiple columns',
    description => <<'_',

This utility is similar to using the Unix utility <prog:pr> to columnate output,
something like (in bash):

    % pr -T -m -w $COLUMNS <(command1 args...) <(command2 args...)

except with the following differences:

* commands are run in sequence, not in parallel (although parallel execution is
  a TODO list item);

* all output are collected first, then displayed (although streaming output is a
  TODO list item);

* multiplexing STDIN to all commands;

* ANSI color and wide character handling;

* passing adjusted COLUMNS environment to commands so they can adjust output;

* passing common arguments and environment variables to all commands (as well as
  allowing each command to have its unique arguments or environment variables).

lib/App/column/run.pm  view on Meta::CPAN


 % pr -T -m -w $COLUMNS <(command1 args...) <(command2 args...)

except with the following differences:

=over

=item * commands are run in sequence, not in parallel (although parallel execution is
a TODO list item);

=item * all output are collected first, then displayed (although streaming output is a
TODO list item);

=item * multiplexing STDIN to all commands;

=item * ANSI color and wide character handling;

=item * passing adjusted COLUMNS environment to commands so they can adjust output;

=item * passing common arguments and environment variables to all commands (as well as
allowing each command to have its unique arguments or environment variables).

script/column-run  view on Meta::CPAN


 % pr -T -m -w $COLUMNS <(command1 args...) <(command2 args...)

except with the following differences:

=over

=item * commands are run in sequence, not in parallel (although parallel execution is
a TODO list item);

=item * all output are collected first, then displayed (although streaming output is a
TODO list item);

=item * multiplexing STDIN to all commands;

=item * ANSI color and wide character handling;

=item * passing adjusted COLUMNS environment to commands so they can adjust output;

=item * passing common arguments and environment variables to all commands (as well as
allowing each command to have its unique arguments or environment variables).



( run in 0.265 second using v1.01-cache-2.11-cpan-a5abf4f5562 )