new env vars: OBJECT_REMOTE_PERL_PATH and OBJECT_REMOTE_LOG_FORMAT
[scpubgit/Object-Remote.git] / lib / Object / Remote / Role / Connector / PerlInterpreter.pm
index 32cb877..670ad73 100644 (file)
@@ -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 => @_);