Script-Remote
view release on metacpan or search on metacpan
lib/Script/Remote.pm view on Meta::CPAN
# $Id: /mirror/coderepos/lang/perl/Script-Remote/trunk/lib/Script/Remote.pm 57706 2008-06-05T02:27:20.427194Z daisuke $
package Script::Remote;
use Moose;
use Moose::Util::TypeConstraints;
use Path::Class::File;
our $DEFAULT_SSH;
class_type 'Path::Class::File';
coerce 'Path::Class::File'
=> from 'Str'
=> via { Path::Class::File->new($_) }
;
has 'hostname' => (
is => 'rw',
isa => 'Str',
required => 1
);
has 'username' => (
is => 'rw',
isa => 'Str',
required => 1,
default => (getpwuid($>))[0]
);
has 'perl' => (
is => 'rw',
isa => 'Path::Class::File',
coerce => 1,
required => 1,
default => $^X
);
has 'no_wait' => (
is => 'rw',
isa => 'Bool',
default => 0
);
has 'ssh' => (
is => 'rw',
isa => 'Path::Class::File',
coerce => 1,
required => 1,
default => sub {
$DEFAULT_SSH ||= __find_cmd("ssh", [ split(/:/, $ENV{PATH}) ]);
}
);
has 'script' => (
is => 'rw',
isa => 'Path::Class::File',
coerce => 1,
required => 1,
);
has 'pid' => (
is => 'rw',
isa => 'Int'
);
has 'child_out' => (
is => 'rw'
);
has 'ssh_args' => (
is => 'rw',
isa => 'ArrayRef',
auto_deref => 1,
default => sub { +[] },
);
no Moose;
use Data::Dump ();
use IPC::Open2 qw(open2);
use POSIX ();
my $MYSELF = '';
open(my $fh, __FILE__);
while (<$fh>) {
$MYSELF .= $_;
last if /^"END OF PACKAGE";/
( run in 0.921 second using v1.01-cache-2.11-cpan-e1769b4cff6 )