Symfony过程显示彩色输出

时间:2018-07-22 12:18:18

标签: php bash symfony ssh terminal

我正在使用Symfony进程组件来运行远程SSH命令,并且目前正在确保返回的输出已被着色,如下所示:

$process = $this->getRemoteProcess();

$theme = new SolarizedTheme();
$converter = new AnsiToHtmlConverter($theme);

$process->run(function ($type, $output) use ($converter) {
    $html = $converter->convert($output);
    event(new BroadcastSSHOutput($html));
});

我的SSH连接设置如下:

$delimiter = 'EOF-DOWNSTREAM-APP';

return new Process(
    "ssh -tt $this->target 'bash -se' << \\$delimiter".PHP_EOL
    .$this->getCommands().PHP_EOL
    .$delimiter
);

如果我使用-tt并强制进行伪终端分配,则颜色将完美显示。我面临的问题是,它还显示了正在执行的命令,服务器名称以及您自己通过SSH进入服务器时通常会看到的所有其他内容。

当我省略-tt标志时,我只会得到命令的输出,而这正是我想要的,但是输出不再是彩色的。

如何确保只返回SSH命令的输出,却返回可以转换为HTML的输出?

0 个答案:

没有答案