forked from movim/movim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdaemon.php
executable file
·60 lines (44 loc) · 1.38 KB
/
daemon.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env php
<?php
require dirname(__FILE__) . '/vendor/autoload.php';
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use Movim\Daemon\Core;
use Movim\Daemon\Api;
use Movim\Bootstrap;
use \React\EventLoop\Factory;
use React\Socket\Server as Reactor;
define('DOCUMENT_ROOT', dirname(__FILE__));
$bootstrap = new Bootstrap;
$booted = $bootstrap->boot();
$argsize = count($argv);
if($argsize == 1) {
echo colorize("Please specify a base uri eg.", "red"). colorize(" http://myhost.com/movim/\n", 'yellow');
exit;
}
if($argsize == 2) {
echo colorize("Please specify a port eg.", "red"). colorize(" 8080\n", 'yellow');
exit;
}
$md = Modl\Modl::getInstance();
$infos = $md->check();
if($infos != null) {
echo colorize("The database need to be updated before running the daemon\n", 'green');
foreach($infos as $i) {
echo colorize($i."\n", 'blue');
}
echo colorize("\nTo update the database run\n", 'green');
echo colorize("php mud.php db --set\n", 'purple');
exit;
}
$loop = Factory::create();
$core = new Core($loop, $argv[1], $argv[2]);
$app = new HttpServer(new WsServer($core));
$socket = new Reactor($loop);
$socket->listen($argv[2], '127.0.0.1');
$socketApi = new Reactor($loop);
new Api($socketApi, $core);
$socketApi->listen(1560);
$server = new IoServer($app, $socket, $loop);
$server->run();