1 package Tak::WorldHandle;
11 sub Tak::WorldHandle::_local::open2 {
13 my $pid = IPC::Open2::open2(my $out, my $in, @_)
14 or die "Couldn't open2 child: $!";
15 return ($in, $out, $pid);
18 has connection => (is => 'ro', required => 1);
21 shift->new(connection => bless({}, 'Tak::WorldHandle::_local'))
25 my ($class, $target) = @_;
26 $class->new(connection => do {
28 Net::OpenSSH->new($target);
32 has router => (is => 'lazy');
37 my ($stdin, $stdout) = $self->connection->open2('perl -');
39 $stdin->print(io('maint/mk-fat |')->all, "__END__\n");
41 my $channel = Tak::JSONChannel->new(
42 read_fh => $stdout, write_fh => $stdin
45 my $router = Tak::Router->new(
49 $router->register(module_sender => Tak::ModuleSender->new);
55 my ($self, $name) = @_;
56 Tak::Remote->new(router => $self->router, name => $name);