summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2018-03-10 17:10:25 +0100
committerGitHub <noreply@github.com>2018-03-10 17:10:25 +0100
commit825142476ecf3379bbda22525db5490ba24ab19f (patch)
treeafeb1cfb619959408aa822834c11eecb789da201 /scripts
parent70246fb946602802b7c54fbfa83db91bc7d68469 (diff)
downloadbugzilla-825142476ecf3379bbda22525db5490ba24ab19f.tar.gz
bugzilla-825142476ecf3379bbda22525db5490ba24ab19f.tar.xz
no bug - move cereal to its own script
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/cereal.pl49
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