mardi 22 mars 2011

Groaaaaaaaarlmeupeudeu !

Ceci est le cri du Growl qui reçoit une notification quand MPD passe au morceau suivant.

La situation :
  • ton desktop est un Mac.
  • tu écoutes ta musique via MPD qui se trouve sur un autre serveur.
  • tu aimerais avoir une notification Growl à chaque changement de chanson.

La solution : un script perl qui suvreille MPD et envoie une notification à Growl au besoin. Un script d'init tout fait pour les debianeux, les autres sauront se débrouiller. Et même - le gadget ultime - l'appli automator qui va demander à réafficher le morceau en cours, car « Régis me parlait au moment de la précédente notification, et c'est un super morceau, mais je ne me souviens vraiment plus de qui c'est ». C'est téléchargeable ici !

  • growl_mpd.conf : il s'agit de la conf (non, sans blague !) au format YAML (le cri du Growl en rut). Si tu ne veux pas d'une option, soit tu la vires comme un goret, soit tu mets proprement la valeur à « ~ ».
  • growl_mpd.pl : le script magique, qui doit être dans le même répertoire que la conf. C'est un démon qu'on lance avec l'argument start. Il supporte aussi les arguments stop et status. On peut aussi lui envoyer un kill -HUP dans la face, afin qu'il balance tout de suite une notification Growl décrivant le morceau en cours de lecture. Si on le laisse tourner sans l'embêter, il n'everra des notifications Growl qu'à un changement d'état de MPD (pause, stop, lecture, changement de morceau).
  • growl_mpd_init.pl : le script d'init à mettre dans /etc/init.d/ sur Debian, à adapter pour les autres distribs/OS. Il faut l'éditer pour mettre le bon chemin de growl_mpd.pl. Il supporte les option start, stop, restart (un stop suivi d'un start), reload, le fameux kill -HUP version convi, et status. En gérant correctement les liens dans /etc/rcBLA, tu fais en sorte que ce script soit lancé à chaque démarrage de l'ordinateur, et hop, tout fonctionne sans qu'on ait rien à faire.
  • le gadget ultime : bah, c'est easy, tu créées une appli automator qui exécute juste une commande shell du genre : « ssh ton.serveur /path/to/growl_mpd_init.pl start »