X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FObject-Remote.git;a=blobdiff_plain;f=lib%2FObject%2FRemote%2FRole%2FConnector%2FPerlInterpreter.pm;h=670ad736fe7abfc870e43541d8b6f91e1ab95e4c;hp=32cb87793a564f56dc4a55d8078204124e18b2fc;hb=0fe333eb337345ecc842a14bf738b5db837936b0;hpb=238812bab798fcfb8c64fa442fc635e659d95d2f diff --git a/lib/Object/Remote/Role/Connector/PerlInterpreter.pm b/lib/Object/Remote/Role/Connector/PerlInterpreter.pm index 32cb877..670ad73 100644 --- a/lib/Object/Remote/Role/Connector/PerlInterpreter.pm +++ b/lib/Object/Remote/Role/Connector/PerlInterpreter.pm @@ -31,24 +31,31 @@ sub _build_module_sender { } sub _build_perl_command { - my ($self) = @_; + my ($self) = @_; my $nice = $self->nice; my $ulimit = $self->ulimit; - my $shell_code = ''; - + my $perl_path = 'perl'; + my $shell_code = ''; + if (defined($ulimit)) { - $shell_code .= "ulimit -v $ulimit; "; + $shell_code .= "ulimit $ulimit || exit 1; "; } - + if (defined($nice)) { $shell_code .= "nice -n $nice "; } - - $shell_code .= 'perl -'; - - return [ 'sh', '-c', $shell_code ]; + + if (defined($ENV{OBJECT_REMOTE_PERL_PATH})) { + log_debug { "Using OBJECT_REMOTE_PERL_PATH environment variable as perl path" }; + $perl_path = $ENV{OBJECT_REMOTE_PERL_PATH}; + } + + $shell_code .= $perl_path . ' -'; + + return [ 'bash', '-c', $shell_code ]; } + around connect => sub { my ($orig, $self) = (shift, shift); my $f = $self->$start::start($orig => @_);