NAME
Command::Template::Runner
SYNOPSIS
use Command::Template::Instance;
use Command::Template::Runner;
my @command = qw{ ls [options=-l] <dir> };
my $instance = Command::Template::Instance->new(@command);
my $runner = Command::Template::Runner->new($instance);
# run command qw< ls -l / >, returns a Command::Template::RunRecord
my $r = $runner->run(dir => '/');
my $run_successful = $r->success;
my $exit_code = $r->exit_code; # 0 is OK as usual in UNIX
my $received_signal = $r->signal; # e.g. if killed, ...
my $stdout = $r->stdout;
my $stderr = $r->stderr;
my $merged = $r->merged; # stderr then stdout, no newlines
DESCRIPTION
This class allows running commands generated by a Command::Template::Instance object, by means of IPC::Run.
INTERFACE
instance
my $instance = $obj->instance;
Returns a reference to the Command::Template::Instance object used to generate the commands that are then executed.
last_run
my $run = $obj->last_run;
Returns the Command::Template::Runner::Record object of the last run (i.e. the same returned by the last call to the "run" method).
new
my $runner = Command::Template::Runner->new($instance);
Constructor. Accepts a single parameter, that is supposed to support the interface provided by Command::Template::Instance (in particular, to support its "generate" in Command::Template::Instance method).
options
my $href = $obj->options;
$obj->options({ ... });
Get/set the options for running. Options are represented by a hash reference with the following keys:
stdin
-
a string holding the standard input to provide to the command;
timeout
-
a timeout for running the command.
run
my $record = $obj->run(%bindings_or_options);
Run a command using IPC::Run:
The input hash %bindings_or_options
is first divided into bindings and options; the latter are set with a leading -
character (e.g. -stdin
is used to the standard input, while -timeout
to set the timeout; also see "options").
The bindings are used to generate the actual command using the Command::Template::Instance object held by "instance"; this command is then executed with the provided options (defaulting to those set via "options"), leveraging IPC::Run.
The outcome of the call is wrapped into a Command::Template::Runner::Record object and returned. It is also later available via method "last_run".
ANYTHING ELSE (INCLUDING AUTHOR, COPYRIGHT AND LICENSE)
See documentation for Command::Template.