public function onChange() { $this->outputDriver->send('[format foreground="green" background="black" effects="bold"]' . '[sideways] File system changes %MIDDLE% [ DETECTED ] [/sideways][/format]' . PHP_EOL); $this->outputDriver->send('[format foreground="green" background="black" effects="bold"]' . '[sideways] Server status %MIDDLE% [ RESTARTING ] [/sideways][/format]' . "\r"); Exec::viaPipe('bin/thinframe server restart', KARMA_ROOT); $this->outputDriver->send('[format foreground="green" background="black" effects="bold"]' . '[sideways] Server status %MIDDLE% [ RESTARTED ] [/sideways][/format]' . PHP_EOL); }
/** * @return bool */ public function restart() { $startCommand = $this->getStartCommand(); $cwd = $this->getWorkingDir(); $this->sendSignal(new Signal(Signal::KILL)); list($exitStatus, $out, $err, $pid) = array_values(Exec::viaPipe($startCommand . ' > /dev/null 2>&1 &', $cwd)); return !$exitStatus; }
/** * This method will be called if this command is triggered * * @param ArgumentsContainer $arguments * * @return mixed */ public function execute(ArgumentsContainer $arguments) { if (!ServerHelper::isRunning()) { $this->outputDriver->send('[error]Server is not running[/error]' . PHP_EOL, [], true); exit(1); } $process = new Process(ServerHelper::getServerPID()); if ($process->sendSignal(new Signal(Signal::KILL))) { sleep(1); Exec::viaPipe('bin/thinframe server start --daemon', KARMA_ROOT); $this->outputDriver->send('[info]The server will start shortly[/info]' . PHP_EOL); exit(0); } else { $this->outputDriver->send('[error]The server is not responding[/error]' . PHP_EOL, [], true); exit(1); } }
/** * This method will be called if this command is triggered * * @param ArgumentsContainer $arguments * * @return mixed */ public function execute(ArgumentsContainer $arguments) { if ($arguments->getOption('daemon')) { if (!ServerHelper::isRunning()) { Exec::viaPipe('bin/thinframe server start > /dev/null 2>&1 &', KARMA_ROOT); sleep(2); } if (ServerHelper::isRunning()) { $this->outputDriver->send('[success]Server is listening at {host}:{port}[/success]' . PHP_EOL, ['host' => $this->server->getHost(), 'port' => $this->server->getPort()]); exit(0); } else { $this->outputDriver->send('[error]Failed to start server[/error]' . PHP_EOL, [], true); exit(1); } } $this->dispatcher->trigger(new SimpleEvent('thinframe.server.pre_start')); $this->outputDriver->send('[success]Server will start listening at {host}:{port}[/success]' . PHP_EOL, ['host' => $this->server->getHost(), 'port' => $this->server->getPort()]); ServerHelper::savePID(); $this->server->start(); }
/** * Get version from git tag */ private function setUpVersion() { $response = Exec::viaPipe('git describe', $this->getApplicationPath()); if ($response['exitStatus'] > 0) { $this->version = new Version('0.0.0-dev'); } else { try { $this->version = new Version($response['stdOut']); } catch (InvalidArgumentException $e) { $this->version = new Version('0.0.0-dev'); } } }
/** * Get user password input * * @return string */ public function readPassword() { $result = Exec::viaPipe('bash -c \'read -s password && echo $password\''); return trim($result['stdOut']); }