Commit | Line | Data |
20038dd8 |
1 | package App::Clifton::Launcher; |
2 | |
3 | use IO::Async::Loop; |
4 | use Log::Contextual qw(set_logger :log); |
5 | use Log::Contextual::SimpleLogger; |
6 | use aliased 'App::Clifton::Server'; |
7 | use Moo; |
8 | |
9 | has config_file => (is => 'ro', required => 1); |
10 | |
11 | sub 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 | |
29 | 1; |