sketch out some service code
[scpubgit/Clifton.git] / lib / App / Clifton / Launcher.pm
CommitLineData
20038dd8 1package App::Clifton::Launcher;
2
3use IO::Async::Loop;
4use Log::Contextual qw(set_logger :log);
5use Log::Contextual::SimpleLogger;
6use aliased 'App::Clifton::Server';
7use Moo;
8
9has config_file => (is => 'ro', required => 1);
10
11sub run {
12 my ($self) = @_;
13 set_logger(Log::Contextual::SimpleLogger->new({ levels => [ qw(
14 info warn debug
15 ) ] }));
16 my $loop = IO::Async::Loop->new;
17 my $server = Server->new(
18 config_file => $self->config_file,
19 loop => $loop,
20 );
21 $loop->later(sub {
22 $server->reload_config->on_finished(sub {
23 log_info { "Server startup complete" };
24 });
25 });
26 $loop->loop_forever;
27}
28
291;