<?xml version="1.0" encoding="UTF-8"?> <!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> --> <appendix id="patches" xreflabel="Useful Patches and Utilities for Bugzilla"> <title>Contrib</title> <para> Il existe un certain nombre d'extensions non officielles pour Bugzilla dans le répertoire <filename class="directory">$BUGZILLA_ROOT/contrib/</filename>. Cette section leur tient lieu de documentation. </para> <section id="cmdline"> <title>L'interface de recherche en ligne de commande</title> <para> Il existe une série d'utilitaires Unix pour faire des recherches dans Bugzilla depuis la ligne de commande. On les trouve dans le répertoire <filename class="directory">contrib/cmdline</filename>. Il y a trois fichiers : <filename>query.conf</filename>, <filename>buglist</filename> et <filename>bugs</filename>. </para> <warning> <para> Ces fichiers datent d'avant le travail de création de modèles effectué dans la version 2.16, et n'ont pas été mis à jour. </para> </warning> <para> <filename>query.conf</filename> contient la correspondance entre les options de ligne de commande et les noms de champs ainsi que les types de comparaison. Les noms d'option entre guillemets sont rassemblés de telle manière qu'il soit facile d'éditer ce fichier. Les commentaires (#) n'ont aucun effet ; assurez vous que ces lignes ne contiennent pas <quote>d'option</quote> entre guillemets. </para> <para> <filename>buglist</filename> est un script shell dont le rôle est d'adresser une requête à Bugzilla et d'écrire le résultat sous forme d'une page HTML sur la sortie standard. Il prend en compte à la fois les options abrégées (comme <quote>-Afoo</quote> ou <quote>-Rbar</quote>) et les options en format long (comme <quote>--assignedto=foo</quote> ou <quote>--reporter=bar</quote>). Si le premier caractère d'une option n'est pas le signe <quote>-</quote>, elle est considérée comme étant préfixée de <quote>--default=</quote>. </para> <para> La liste en colonnes est extraite du contenu de la variable d'environnement COLUMNLIST. C'est équivalent à l'option <quote>Change columns</quote> lorsque vous inscrivez les bogues dans buglist.cgi. Si vous avez déjà utilisé Bugzilla, lancez grep sur COLUMNLIST dans vos fichiers de cookies pour voir le contenu actuel de COLUMNLIST. </para> <para> <filename>bugs</filename> est un simple script qui appelle <filename>buglist</filename> et extrait les numéros de bogues à partir du résultat en sortie. Le fait d'ajouter le préfixe <quote>http://bugzilla.mozilla.org/buglist.cgi?bug_id=</quote> transforme la liste de bogues en liens qui fonctionnent si des bogues sont trouvés. Compter les bogues est une chose aisée. Récupérez le résultat avec un tube vers <command>sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</command>. </para> <para> Akkana Peck affirme avoir de bons résultats en plaçant un tube au niveau du résultat de <filename>buglist</filename> vers <command>w3m -T text/html -dump</command> </para> </section> <section id="cmdline-bugmail"> <title> L'outil <quote>envoi de courriel de bogue non-envoyé</quote> en ligne de commande </title> <para> Au sein du répertoire <filename class="directory">contrib</filename> existe un utilitaire portant le nom explicite (bien que compact) de <filename>sendunsentbugmail.pl</filename>. Le but de ce script est simplement d'émettre tout courriel relatif à un bogue qui aurait déjà dû être envoyé mais qui, pour une raison ou une autre, ne l'a pas été. </para> <para> Pour accomplir cette tâche, <filename>sendunsentbugmail.pl</filename> utilise le même mécanisme que le script <filename>sanitycheck.cgi</filename>; il parcourt entièrement la base de donnée en cherchant les bogues présentant des changements effectués il y a plus de 30 minutes, là où il ne trouve aucune trace indiquant qu'un courriel relatif à ce bogue ait été envoyé à qui que ce soit. Après avoir établi une liste, il utilise ensuite les règles standard pour déterminer qui recevra le courriel, et l'émet. </para> <para> Lorsque le script s'exécute, il indique le bogue pour lequel il envoie le présent courriel; lorsqu'il a fini, il fournit un total chiffré des courriels envoyés et du nombre de personnes qui en ont été exclues. (Les noms d'utilisateurs personnels ne sont pas enregistrés ni affichés.) Si le script ne produit aucun résultat en sortie, cela signifie qu'aucun courriel non-envoyé n'a été détecté. </para> <para> <emphasis>Mode d'emploi</emphasis> : faites remonter le script sendunsentbugmail.pl dans le répertoire principal, assurez vous qu'il possède les droits en exécution et lancez le depuis la ligne de commande (ou depuis un utilitaire de tâches planifiées) sans aucun paramètre. </para> </section> </appendix> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-always-quote-attributes:t sgml-auto-insert-required-elements:t sgml-balanced-tag-edit:t sgml-exposed-tags:nil sgml-general-insert-case:lower sgml-indent-data:t sgml-indent-step:2 sgml-local-catalogs:nil sgml-local-ecat-files:nil sgml-minimize-attributes:nil sgml-namecase-general:t sgml-omittag:t sgml-parent-document:("Bugzilla-Guide.xml" "book" "chapter") sgml-shorttag:t sgml-tag-region-if-active:t End: -->