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