8000 [WebServerBundle] added a way to dump current status host/port/addres… · symfony/symfony@cf724dd · GitHub
[go: up one dir, main page]

Skip to content

Commit cf724dd

Browse files
committed
[WebServerBundle] added a way to dump current status host/port/address when getting the status
1 parent d662b21 commit cf724dd

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

src/Symfony/Bundle/WebServerBundle/Command/ServerStatusCommand.php

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ protected function configure()
3535
->setName('server:status')
3636
->setDefinition(array(
3737
new InputOption('pidfile', null, InputOption::VALUE_REQUIRED, 'PID file'),
38+
new InputOption('filter', null, InputOption::VALUE_REQUIRED, 'The value to display (one of port, host, or address)'),
3839
))
3940
->setDescription('Outputs the status of the local web server for the given address')
4041
;
@@ -47,10 +48,28 @@ protected function execute(InputInterface $input, OutputInterface $output)
4748
{
4849
$io = new SymfonyStyle($input, $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output);
4950
$server = new WebServer();
50-
if ($server->isRunning($input->getOption('pidfile'))) {
51-
$io->success(sprintf('Web server still listening 8000 on http://%s', $server->getAddress($input->getOption('pidfile'))));
51+
if ($filter = $input->getOption('filter')) {
52+
if ($server->isRunning($input->getOption('pidfile'))) {
53+
list($host, $port) = explode(':', $address = $server->getAddress($input->getOption('pidfile')));
54+
if ('address' === $filter) {
55+
$output->write($address);
56+
} elseif ('host' === $filter) {
57+
$output->write($host);
58+
} elseif ('port' === $filter) {
59+
$output->write($port);
60+
} else {
61+
throw new \InvalidArgumentException(sprintf('"%s" is not a valid filter.', $filter));
62+
}
63+
} else {
64+
return 1;
65+
}
5266
} else {
53-
$io->warning('No web server is listening.');
67+
if ($server->isRunning($input->getOption('pidfile'))) {
68+
$io->success(sprintf('Web server still listening on http://%s', $server->getAddress($input->getOption('pidfile'))));
69+
} else {
70+
$io->warning('No web server is listening.');
71+
return 1;
72+
}
5473
}
5574
}
5675
}

0 commit comments

Comments
 (0)
0