Eu encontrei isto:
utilitário bcc-pipe to browser
... para instalar no Ubuntu Natty, eu fiz:
sudo apt-get install rubygems1.8
sudo gem install bcat
# to call
ruby -rubygems /var/lib/gems/1.8/gems/bcat-0.6.2/bin/bcat
echo "<b>test</b>" | ruby -rubygems /var/lib/gems/1.8/gems/bcat-0.6.2/bin/bcat
Eu achei que funciona com seu próprio navegador - mas a execução acima abriu uma nova guia em um Firefox já em execução, apontando para um endereço de host local http://127.0.0.1:53718/btest
... Com bcat
instalação você também pode fazer:
tail -f /var/log/syslog | ruby -rubygems /var/lib/gems/1.8/gems/bcat-0.6.2/bin/btee
... uma aba será aberta novamente, mas o Firefox continuará mostrando o ícone de carregamento (e, aparentemente, atualizaria a página quando atualizações do syslog).
A página bcat
também faz referência ao navegador uzbl , que aparentemente pode lidar com stdin - mas por seus próprios comandos (provavelmente olhe para isso mais, embora)
EDIT: Como eu precisava de algo assim mal (principalmente para ver tabelas HTML com dados gerados na hora (e meu Firefox está ficando muito lento para ser útil com bcat
), eu tentei com uma solução personalizada. use ReText , eu já tinha instalado python-qt4
e ligações do WebKit (e dependências) no meu Ubuntu. Script Python / PyQt4 / QWebKit - que funciona como bcat
(não como btee
), mas com sua própria janela do navegador - chamada Qt4WebKit_singleinst_stdin.py
(ou qwksisi
para abreviar):
Basicamente, com o script baixado (e dependências), você pode aliasá-lo em um terminal bash
como este:
$ alias qwksisi="python /path/to/Qt4WebKit_singleinst_stdin.py"
... e em um terminal (após o aliasing), qwksisi
aumentará a janela do navegador mestre; enquanto em outro terminal (novamente após o aliasing), pode-se fazer o seguinte para obter dados stdin:
$ echo "<h1>Hello World</h1>" | qwksisi -
... como mostrado abaixo:
Nãoseesqueçado-
nofinalparasereferirastdin;casocontrário,umnomedearquivolocaltambémpodeserusadocomoúltimoargumento.
Basicamente,oproblemaaquiéresolver:
- problemadeinstânciaúnica(assim,aprimeiraexecuçãodoscriptsetornaum"mestre" e gera uma janela do navegador - enquanto as execuções subseqüentes simplesmente passam os dados para o mestre e saem)
- interprocessar a comunicação para compartilhar variáveis (para que os processos de saída possam passar dados para a janela do navegador mestre)
- Atualização do timer no mestre que procura por novo conteúdo e atualiza a janela do navegador se o novo conteúdo chegar.
Como tal, o mesmo poderia ser implementado em, digamos, Perl com ligações Gtk e WebKit (ou outro componente do navegador). Pergunto-me, no entanto, se o framework XUL do Mozilla poderia ser usado para implementar a mesma funcionalidade - eu acho que nesse caso, seria possível trabalhar com o componente do navegador Firefox.