
Les scripts, j'adore
J'adore les petits bricolages qu'on peut faire avec des scripts rapidement écrits. Ça peut paraître assez stupide, mais je trouve ça assez fantastique. Dernier exemple en date : j'avais envie d'une page Web liste les flux RSS auxquels je suis abonné grâce à
Feed2Imap. Mieux, il faudrait que cette page Web soit sur mon Wiki, et qu'elle se mette à jour automagiquement, sans que j'ai besoin de faire quoi que ce soit. La recette est la suivante.
Soit un fichier
.feed2imaprc qui contient la liste des flux RSS avec leur URL, de la forme :
- name: KernelTrap
url: http://kerneltrap.org/node/feed
target: imap://user:pass@host/mail/rss/vrac
Un petit script Perl parse ce fichier, et crache une requête SQL de type
update qui peut mettre à jour la page
ListeFluxRss de mon blog :
#!/usr/bin/perl -w
use strict;
my $name = "";
my $url = "";
my $body = "===== Liste de flux RSS =====
Ci-dessous sont listés les flux RSS auxquels je suis abonné, grâce à [[http://home.gna.org/feed2imap Feed2Imap]].
";
while(<>)
{
if (/- name: (.*)/) {
$name = $1;
}
if (/url: (http\:\/\/.*)/) {
$url = $1;
}
if ($url) {
$body .= " - [[" . $url . " " . $name . "]]\n";
$url = "";
}
}
my $sql = "update wikini_pages set body='$body', time=NOW() where (tag='ListeFluxRss' and latest='Y')";
print $sql;
Il suffit alors de lancer quelque chose comme (le mot de passe de la base MySQL étant dans le fichier
~/.my.cnf) :
cat .feed2imaprc | ./rsslist2html | mysql -h localhost -u thomas thomas
Et hop, la page
ListeFluxRss est mise à jour. On rentre la commande dans la
crontab pour qu'elle soit appelée tous les jours, et voilà, c'est mis à jour automagiquement.
Franchement, j'adore ce genre de petits bricolages. C'est peut-être crado, pas bien conçu ou que sais-je encore, mais en tout cas, ça a pris 5 minutes en réutilisant les outils qui existent déjà. Je trouve vraiment ça merveilleux.