/usr/share/perl5/Rex/Output.pm is in rex 1.4.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #
# (c) Jan Gehring <jan.gehring@gmail.com>
#
# vim: set ts=2 sw=2 tw=0:
# vim: set expandtab:
package Rex::Output;
use strict;
use warnings;
my $handle;
use vars qw($output_object);
BEGIN { IPC::Shareable->use; }
END { IPC::Shareable->clean_up_all; }
use base 'Rex::Output::Base';
our $VERSION = '1.4.1'; # VERSION
sub get {
my ( $class, $output_module ) = @_;
return $output_object if ($output_object);
return unless ($output_module);
$handle = tie $output_object, 'IPC::Shareable', undef, { destroy => 1 }
unless $handle;
eval "use Rex::Output::$output_module;";
if ($@) {
die("Output Module ,,$output_module'' not found.");
}
my $output_class = "Rex::Output::$output_module";
$output_object = $output_class->new;
return $class;
}
sub _action {
my ( $class, $action, @args ) = @_;
return unless ( defined $output_object );
$handle->shlock();
$output_object->$action(@args);
$handle->shunlock();
}
sub add {
my $class = shift;
return $class->_action( 'add', @_ );
}
sub error {
my $class = shift;
return $class->_action( 'error', @_ );
}
sub write {
my $class = shift;
return $class->_action( 'write', @_ );
}
1;
|