NAME
Command::Template::Runner
SYNOPSIS
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.