App-column-run

 view release on metacpan or  search on metacpan

script/column-run  view on Meta::CPAN

    read_config => 0,
    read_env => 0,
);

$cmdline->run;

# ABSTRACT: Run several commands and show their output in multiple columns
# PODNAME: column-run

__END__

=pod

=encoding UTF-8

=head1 NAME

column-run - Run several commands and show their output in multiple columns

=head1 VERSION

This document describes version 0.005 of column-run (from Perl distribution App-column-run), released on 2021-07-08.

=head1 SYNOPSIS

Usage:

 % column-run [--args-arrays-json=s] [--args-arrays=s] [--command=s+]
     [--commands-json=s] [--common-arg=s+] [--common-args-json=s]
     [--common-env key=s] [--common-envs-json=s] [--debug]
     [--envs-arrays-json=s] [--envs-arrays=s] [--linum-width=s]
     [--log-level=level] [--no-show-linum] [--noshow-linum]
     [--on-long-line=s] [--page-result[=program]] [--quiet] [--separator=s]
     [--show-linum] [--trace] [--verbose] [--view-result[=program]]
     [--wrap] -- <command> ...

Examples:

Compare JSON vs Perl Data::Dump vs YAML dump, side by side:

 % cat ~/samples/bookstore.json | COLOR=1 column-run pp-json json2dd json2yaml

Compare different color themes:

 % cat ~/samples/bookstore.json | COLOR=1 column-run --envs-arrays-json '[{"DATA_DUMP_COLOR_THEME":"Default256"},{"DATA_DUMP_COLOR_THEME":"Default16"}]' 'json2dd --dumper=Data::Dump::Color' 'json2dd --dumper=Data::Dump::Color'

=head1 DESCRIPTION

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

 % 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).

=back

=head1 OPTIONS

C<*> marks required options.

=head2 Main options

=over

=item B<--args-arrays-json>=I<s>

Arguments to give to each command (an array of arrays of strings) (JSON-encoded).

See C<--args-arrays>.

=item B<--args-arrays>=I<s>

Arguments to give to each command (an array of arrays of strings).

If `--common-args` is also set, then the common arguments will be added first,
then the per-command arguments.


=item B<--command>=I<s@>*

Can also be specified as the 1st command-line argument and onwards.

Can be specified multiple times.

=item B<--commands-json>=I<s>

See C<--command>.

Can also be specified as the 1st command-line argument and onwards.

=item B<--common-arg>=I<s@>

Common arguments to pass to each command.

If `--args-arrays` is also set, then the common arguments will be added first,
then the per-command arguments.


Can be specified multiple times.

=item B<--common-args-json>=I<s>

Common arguments to pass to each command (JSON-encoded).



( run in 0.684 second using v1.01-cache-2.11-cpan-39bf76dae61 )