diff options
author | Dylan William Hardison <dylan@hardison.net> | 2018-03-10 17:10:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-10 17:10:25 +0100 |
commit | 825142476ecf3379bbda22525db5490ba24ab19f (patch) | |
tree | afeb1cfb619959408aa822834c11eecb789da201 /scripts | |
parent | 70246fb946602802b7c54fbfa83db91bc7d68469 (diff) | |
download | bugzilla-825142476ecf3379bbda22525db5490ba24ab19f.tar.gz bugzilla-825142476ecf3379bbda22525db5490ba24ab19f.tar.xz |
no bug - move cereal to its own script
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/cereal.pl | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/cereal.pl b/scripts/cereal.pl new file mode 100755 index 000000000..d5b556451 --- /dev/null +++ b/scripts/cereal.pl @@ -0,0 +1,49 @@ +#!/usr/bin/perl +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +use 5.10.1; +use strict; +use warnings; + +use File::Basename; +use File::Spec; +BEGIN { + require lib; + my $dir = File::Spec->rel2abs(File::Spec->catdir(dirname(__FILE__), '..')); + lib->import($dir, File::Spec->catdir($dir, 'lib'), File::Spec->catdir($dir, qw(local lib perl5))); +} + +use Bugzilla::DaemonControl qw(catch_signal); +use Future; +use IO::Async::Loop; +use IO::Async::Protocol::LineStream; + +$ENV{LOGGING_PORT} //= 5880; + +my $loop = IO::Async::Loop->new; +my $on_stream = sub { + my ($stream) = @_; + my $protocol = IO::Async::Protocol::LineStream->new( + transport => $stream, + on_read_line => sub { + my ( $self, $line ) = @_; + say $line; + }, + ); + $loop->add($protocol); +}; +my @signals = qw( TERM INT KILL ); + +$loop->listen( + host => '127.0.0.1', + service => $ENV{LOGGING_PORT}, + socktype => 'stream', + on_stream => $on_stream, +)->get; + +exit Future->wait_any(map { catch_signal($_, 0) } @signals)->get;
\ No newline at end of file |