working remote module loading
[scpubgit/Tak.git] / takd
1 use strictures 1;
2 use Tak::JSONChannel;
3 use Tak::ServiceManager;
4 use Tak::EvalService;
5 use Tak::ModuleLoader;
6 use Tak::Router;
7 use Tak::Remote;
8
9 open my $stdin, '<&', \*STDIN;
10 open my $stdout, '>&', \*STDOUT;
11
12 my $channel = Tak::JSONChannel->new(
13   read_fh => $stdin,
14   write_fh => $stdout,
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
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
42 $router->run;