Vous pouvez contrôler WeeChat à distance, en envoyant des commandes ou du texte dans un tube FIFO (l'option "irc_fifo_pipe" doit être activée, elle est désactivée par défaut).
Le tube FIFO est dans le répertoire "~/.weechat/
"
et s'appelle "weechat_fifo_xxxxx" (où xxxxx est l'ID du processus
(PID) du WeeChat qui tourne). Donc si plusieurs WeeChat tournent, il
y a plusieurs tubes FIFO, un pour chaque session.
La syntaxe pour envoyer des commandes ou du texte dans le tube FIFO est la suivante :
serveur,canal *texte ou commande ici
où le serveur et le canal sont facultatifs, mais si le canal est là, le serveur doit l'être aussi.
Quelques exemples :
changement du pseudo sur freenode en "pseudo|absent" :
$
echo "freenode */nick pseudo|absent" >~/.weechat/weechat_fifo_12345
affichage de texte sur le canal #weechat :
$
echo "freenode,#weechat *bonjour tout le monde !" >~/.weechat/weechat_fifo_12345
affichage de texte sur le canal courant (le tampon affiché par WeeChat) :
$
echo "*bonjour !" >~/.weechat/weechat_fifo_12345
Attention : ceci est dangereux et vous ne devriez pas le faire sauf si vous savez ce que vous faites !
envoyer deux commandes pour décharger/recharger les scripts Perl (vous devez les séparer par "\n") :
$
echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345
Vous pouvez écrire un script qui envoie les commandes à tous les WeeChat qui tournent en même temps, par exemple :
#!/bin/sh if [ $# -eq 1 ]; then for fifo in $(/bin/ls ~/.weechat/weechat_fifo_* 2>/dev/null); do echo -e "$1" >$fifo done fi
Si le script s'appelle "auto_weechat_command", vous pouvez le lancer ainsi :
$
./auto_weechat_command "freenode,#weechat *bonjour"