Commit | Line | Data |
36cf3bcb |
1 | use strictures 1; |
2 | use Tak::JSONChannel; |
3 | use Tak::ServiceManager; |
4 | use Tak::EvalService; |
799b77f3 |
5 | use Tak::ModuleLoader; |
36cf3bcb |
6 | use Tak::Router; |
799b77f3 |
7 | use Tak::Remote; |
8 | |
9 | open my $stdin, '<&', \*STDIN; |
10 | open my $stdout, '>&', \*STDOUT; |
36cf3bcb |
11 | |
12 | my $channel = Tak::JSONChannel->new( |
799b77f3 |
13 | read_fh => $stdin, |
14 | write_fh => $stdout, |
36cf3bcb |
15 | ); |
16 | |
17 | my $eval = Tak::ServiceManager->new( |
18 | service => Tak::EvalService->new |
19 | ); |
20 | |
21 | my $router = Tak::Router->new( |
22 | channel => $channel, |
23 | local_request_handlers => { |
24 | EVAL => $eval |
25 | } |
26 | ); |
27 | |
799b77f3 |
28 | my $remote = Tak::Remote->new( |
29 | router => $router, |
30 | name => 'MODULE_SENDER' |
31 | ); |
32 | |
33 | my $loader = Tak::ModuleLoader->new( |
34 | remote => $remote |
35 | ); |
36 | |
37 | shift @INC; |
38 | shift @INC while $INC[0] =~ /^\Q$ENV{HOME}/; |
39 | |
40 | unshift @INC, $loader->inc_callback; |
41 | |
36cf3bcb |
42 | $router->run; |