You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.3 KiB

  1. #!/usr/bin/env php
  2. <?php
  3. use Ratchet\Server\IoServer;
  4. use Ratchet\Http\HttpServer;
  5. use Ratchet\WebSocket\WsServer;
  6. use Movim\Daemon\Core;
  7. use \React\EventLoop\Factory;
  8. use React\Socket\Server as Reactor;
  9. require dirname(__FILE__) . '/vendor/autoload.php';
  10. define('DOCUMENT_ROOT', dirname(__FILE__));
  11. require_once(DOCUMENT_ROOT.'/bootstrap.php');
  12. $bootstrap = new Bootstrap();
  13. $booted = $bootstrap->boot();
  14. $argsize = count($argv);
  15. if($argsize == 1) {
  16. echo colorize("Please specify a base uri eg.", "red"). colorize(" http://myhost.com/movim/\n", 'yellow');
  17. exit;
  18. }
  19. if($argsize == 2) {
  20. echo colorize("Please specify a port eg.", "red"). colorize(" 8080\n", 'yellow');
  21. exit;
  22. }
  23. $md = Modl\Modl::getInstance();
  24. $infos = $md->check();
  25. if($infos != null) {
  26. echo colorize("The database need to be updated before running the daemon\n", 'green');
  27. foreach($infos as $i) {
  28. echo colorize($i."\n", 'blue');
  29. }
  30. echo colorize("\nTo update the database run\n", 'green');
  31. echo colorize("php mud.php db set\n", 'purple');
  32. exit;
  33. }
  34. $loop = Factory::create();
  35. $core = new Core($loop, $argv[1], $argv[2]);
  36. $app = new HttpServer(new WsServer($core));
  37. $socket = new Reactor($loop);
  38. $socket->listen($argv[2], '0.0.0.0');
  39. $server = new IoServer($app, $socket, $loop);
  40. $server->run();