package Object::Remote::Connector::LocalSudo;
-
+
use Object::Remote::Logging qw (:log :dlog);
use Symbol qw(gensym);
use Module::Runtime qw(use_module);
sub _build_sudo_perl_command {
my ($self) = @_;
- return
+ return [
'sudo', '-S', '-u', $self->target_user, '-p', "[sudo] password please\n",
'perl', '-MPOSIX=dup2',
'-e', 'print STDERR "GO\n"; exec(@ARGV);',
- $self->perl_command;
+ @{$self->perl_command},
+ ];
}
sub _start_perl {
if (sysread($sudo_stderr, my $buf, 32768) > 0) {
log_trace { "LocalSudo: successfully read data, printing it to STDERR" };
print STDERR $buf;
- log_trace { "LocalSudo: print() to STDERR is done" };
+ log_trace { "LocalSudo: print() to STDERR is done" };
} else {
log_debug { "LocalSudo: received EOF or error on file handle, unwatching it" };
Object::Remote->current_loop