4 require __DIR__
."/../share/btr/irc.php";
7 fatal("Usage: %s <url> <fifo>\n", basename($argv[0]));
10 if (!($hnd = mkfifo($_SERVER["argv"][2]))) {
11 fatal("%s", error_get_last()["message"]);
13 pcntl_signal(SIGINT
, "fatal");
14 pcntl_signal(SIGTERM
, "fatal");
15 pcntl_signal(SIGQUIT
, "fatal");
16 pcntl_signal(SIGHUP
, function() {
18 switch (pcntl_fork()) {
20 if (posix_setsid() !== -1) {
27 $_SERVER["argv"][2] = null;
31 register_shutdown_function(function() {
32 if (isfifo($_SERVER["argv"][2])) {
33 @unlink
($_SERVER["argv"][2]);
39 $bot = new Client($argv[1], function() use($hnd, &$rfd) {
40 stream_set_blocking($hnd, false);
45 if (false === ($r = $bot->getSession()->run($rfd, $wfd))) {
48 while ($r && $r[0] && ($message = fgets($r[0][0]))) {
51 pcntl_signal_dispatch();
52 } while (!feof($hnd));