X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FObject%2FRemote%2FConnector%2FLocalSudo.pm;h=47dead405d5bf8b2814b6f9a5eacbeb7802b3497;hb=54b64f99be532930bd97b0fd2418675302aa7a1e;hp=e9bbb9661afcca1c1e16b49458d43087b2593fde;hpb=353556c4b81bcb3a0c3fff934eff5ab2f19733d4;p=scpubgit%2FObject-Remote.git diff --git a/lib/Object/Remote/Connector/LocalSudo.pm b/lib/Object/Remote/Connector/LocalSudo.pm index e9bbb96..47dead4 100644 --- a/lib/Object/Remote/Connector/LocalSudo.pm +++ b/lib/Object/Remote/Connector/LocalSudo.pm @@ -1,5 +1,6 @@ package Object::Remote::Connector::LocalSudo; +use Object::Remote::Logging qw (:log :dlog); use Symbol qw(gensym); use Module::Runtime qw(use_module); use IPC::Open3; @@ -24,11 +25,12 @@ has sudo_perl_command => (is => 'lazy'); 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 { @@ -68,7 +70,7 @@ 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