NAME
MooX::Ipc::Cmd - Moo role for issuing commands, with debug support, and signal handling
VERSION
version 1.2.0
SYNOPSIS
This role provides the ability to capture system calls, and to execute system calls.
Features
Prints output in realtime, in debug mode
Handles signals, and kills via signal if configured too.
Uses Log::Any for logging. If in debug mode, will log output of commands, and execution line
Command line option
package Moo_Package;
use Moo;
use MooX::Options; # required before with statement
with qw(MooX::Ipc::Cmd);
has '+_cmd_kill' => (default=>1); # override default
sub run {
my $self=shift
$self->_system(['cmd']);
my @result=$self->_capture(['results']);
}
1;
package main
use Log::Any::Adapter('Stdout'); #setup Log::Any::Adapter;
my $app=Moo_Package->new_with_options(_cmd_kill=>0); #command line processing
my $app=Moo_Package->new(_cmd_kill=>0); #no command line processing
1;
ATTRIBUTES
_cmd_kill
If set to 1 will send the propgate signal when cmd exits due to signal.
Reader: _cmd_kill
Default: 1
mock
Mocks the cmd, does not run
Reader: mock
Default: 0
Command line option, via MooX::Options
METHODS
_system(\@cmd', /%opts);
Runs a command like system call, with the output silently dropped, unless in log::any debug level
- Params:
-
$cmd : arrayref of the command to send to the shell %opts valid_exit => [0] - exits to not throw exception, defaults to 0
- Returns:
-
exit code
- Exception
-
Throws an error when case dies, will also log error using log::any category _cmd
_capture(\@cmd',\%opts);
Runs a command like qx call. Will display cmd executed
- Params:
-
$cmd: arrayref of the command to send to the shell %opts: valid_exit => [0] - exits to not throw exception, defaults to 0
- Returns:
-
combined stderr stdout
- Exception
-
Throws an MooX::Ipc::Cmd::Exception error
AUTHOR
Eddie Ash <eddie+cpan@ashfamily.net>
COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Edward Ash.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.