<?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:
-->