Use Bash para Irssi

Use Bash para Irssi

Tudo bem, estou escrevendo um script de shell para abrir o Irssi e conectar-se automaticamente ao freenode. Devo editar o arquivo em ~/.irssi/config ou existe uma maneira de simular que estou digitando /connect irc.freenode.net? Usei echo, send e expect, mas não funcionou. Aqui está o código que tenho até agora.

irssi
echo "/connect irc.freenode.net"

Responder1

irssi fornece uma -copção que permite especificar um servidor ao qual se conectar quando o aplicativo for iniciado. Depágina de manual do irssi:

-c, --connect=SERVER
    connects to SERVER

Então, você pode usar qualquer um destes:

$ irssi -c irc.freenode.net
$ irssi --connect=irc.freenode.net
$ irssi --connect irc.freenode.net

A razão pela qual echonão funciona é porque não está conectado à entrada padrão do irssi. Basicamente, o que acontece é:

  • Você inicia o irssi, conecta-se a um servidor, bate um papo e sai.
  • Assim que o irssi for fechado (seu processo termina), seu echotexto será impresso.

Você terá o mesmo resultado se usar:

$ irssi ; echo "Hello"

Agora, no que expectdiz respeito, isso provavelmente se deve ao fato de o irssi ser um cliente baseado em ncurses. Como o ncurses redefine a maneira como a entrada e a saída são manipuladas, é muito provável que ele expectnão consiga se comunicar com o processo de qualquer maneira. Além disso, não há nada a esperar stdoutespecificamente, já que o irssi envia muitas coisas nesse stream:

  • Um cabeçalho azul.
  • Algumas linhas em branco, algumas com texto, se você usou -c(registro de conexão).
  • Outra linha azul com algum texto.
  • Um aviso.
  • ...

E não apenas:

[(status)] _

Ao que você poderia responder com:

/connect irc.freenode.net

informação relacionada