diff --git a/HttpServer/Command.php b/HttpServer/Command.php index 9029225a..b0fc3abf 100644 --- a/HttpServer/Command.php +++ b/HttpServer/Command.php @@ -16,41 +16,43 @@ use Snowflake\Snowflake; class Command extends \Console\Command { - public string $command = 'sw:server'; + public string $command = 'sw:server'; - public string $description = 'server start|stop|reload|restart'; + public string $description = 'server start|stop|reload|restart'; - const ACTIONS = ['start', 'stop', 'restart']; + const ACTIONS = ['start', 'stop', 'restart']; - /** - * @param Input $dtl - * @return string - * @throws Exception - * @throws ConfigException - */ - public function onHandler(Input $dtl): string - { - $manager = Snowflake::app()->getServer(); - $manager->setDaemon($dtl->get('daemon', 0)); + /** + * @param Input $dtl + * @return string + * @throws Exception + * @throws ConfigException + */ + public function onHandler(Input $dtl): string + { + $manager = Snowflake::app()->getServer(); + $manager->setDaemon($dtl->get('daemon', 0)); - if (!in_array($dtl->get('action'), self::ACTIONS)) { - return 'I don\'t know what I want to do.'; - } + if (!in_array($dtl->get('action'), self::ACTIONS)) { + return 'I don\'t know what I want to do.'; + } + if (!file_exists(storage('runtime.php'))) { + exec(PHP_BINARY . ' snowflake runtime:builder'); + } + /** @var Shutdown $shutdown */ + $shutdown = Snowflake::app()->get('shutdown'); + if ($shutdown->isRunning() && $dtl->get('action') == 'start') { + return 'Service is running. Please use restart.'; + } - /** @var Shutdown $shutdown */ - $shutdown = Snowflake::app()->get('shutdown'); - if ($shutdown->isRunning() && $dtl->get('action') == 'start') { - return 'Service is running. Please use restart.'; - } - - $shutdown->shutdown(); - if ($dtl->get('action') == 'stop') { - return 'shutdown success.'; - } - return $manager->start(); - } + $shutdown->shutdown(); + if ($dtl->get('action') == 'stop') { + return 'shutdown success.'; + } + return $manager->start(); + } }