private function resolveOpenerCommand(OutputInterface $output)
{
$opener = '';
if (OperatingSystem::isMacOs()) {
$opener = 'open';
} elseif (OperatingSystem::isWindows()) {
$opener = 'start';
} else {
// Linux
if (exec('which xdg-open')) {
$opener = 'xdg-open';
} elseif (exec('which gnome-open')) {
$opener = 'gnome-open';
} elseif (exec('which kde-open')) {
$opener = 'kde-open';
}
}
if (empty($opener)) {
throw new RuntimeException('No opener command like xdg-open, gnome-open, kde-open was found.');
}
if (OutputInterface::VERBOSITY_DEBUG <= $output->getVerbosity()) {
$message = sprintf('open command is "%s"', $opener);
$output->writeln('<debug>' . $message . '</debug>');
}
return $opener;
}