| <!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> --> |
| <appendix id="patches" xreflabel="Useful Patches and Utilities for Bugzilla"> |
| <title>Contrib</title> |
| |
| <para> |
| There are a number of unofficial Bugzilla add-ons in the |
| <filename class="directory">$BUGZILLA_ROOT/contrib/</filename> |
| directory. This section documents them. |
| </para> |
| |
| <section id="cmdline"> |
| <title>Command-line Search Interface</title> |
| |
| <para> |
| There are a suite of Unix utilities for searching Bugzilla from the |
| command line. They live in the |
| <filename class="directory">contrib/cmdline</filename> directory. |
| There are three files - <filename>query.conf</filename>, |
| <filename>buglist</filename> and <filename>bugs</filename>. |
| </para> |
| |
| <warning> |
| <para> |
| These files pre-date the templatization work done as part of the |
| 2.16 release, and have not been updated. |
| </para> |
| </warning> |
| |
| <para> |
| <filename>query.conf</filename> contains the mapping from |
| options to field names and comparison types. Quoted option names |
| are <quote>grepped</quote> for, so it should be easy to edit this |
| file. Comments (#) have no effect; you must make sure these lines |
| do not contain any quoted <quote>option</quote>. |
| </para> |
| |
| <para> |
| <filename>buglist</filename> is a shell script that submits a |
| Bugzilla query and writes the resulting HTML page to stdout. |
| It supports both short options, (such as <quote>-Afoo</quote> |
| or <quote>-Rbar</quote>) and long options (such |
| as <quote>--assignedto=foo</quote> or <quote>--reporter=bar</quote>). |
| If the first character of an option is not <quote>-</quote>, it is |
| treated as if it were prefixed with <quote>--default=</quote>. |
| </para> |
| |
| <para> |
| The column list is taken from the COLUMNLIST environment variable. |
| This is equivalent to the <quote>Change Columns</quote> option |
| that is available when you list bugs in buglist.cgi. If you have |
| already used Bugzilla, grep for COLUMNLIST in your cookies file |
| to see your current COLUMNLIST setting. |
| </para> |
| |
| <para> |
| <filename>bugs</filename> is a simple shell script which calls |
| <filename>buglist</filename> and extracts the |
| bug numbers from the output. Adding the prefix |
| <quote>http://bugzilla.mozilla.org/buglist.cgi?bug_id=</quote> |
| turns the bug list into a working link if any bugs are found. |
| Counting bugs is easy. Pipe the results through |
| <command>sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</command> |
| </para> |
| |
| <para> |
| Akkana Peck says she has good results piping |
| <filename>buglist</filename> output through |
| <command>w3m -T text/html -dump</command> |
| </para> |
| |
| </section> |
| |
| <section id="cmdline-bugmail"> |
| <title>Command-line 'Send Unsent Bug-mail' tool</title> |
| |
| <para> |
| Within the <filename class="directory">contrib</filename> directory |
| exists a utility with the descriptive (if compact) name |
| of <filename>sendunsentbugmail.pl</filename>. The purpose of this |
| script is, simply, to send out any bug-related mail that should |
| have been sent by now, but for one reason or another has not. |
| </para> |
| |
| <para> |
| To accomplish this task, <filename>sendunsentbugmail.pl</filename> uses |
| the same mechanism as the <filename>sanitycheck.cgi</filename> script; |
| it scans through the entire database looking for bugs with changes that |
| were made more than 30 minutes ago, but where there is no record of |
| anyone related to that bug having been sent mail. Having compiled a list, |
| it then uses the standard rules to determine who gets mail, and sends it |
| out. |
| </para> |
| |
| <para> |
| As the script runs, it indicates the bug for which it is currently |
| sending mail; when it has finished, it gives a numerical count of how |
| many mails were sent and how many people were excluded. (Individual |
| user names are not recorded or displayed.) If the script produces |
| no output, that means no unsent mail was detected. |
| </para> |
| |
| <para> |
| <emphasis>Usage</emphasis>: move the sendunsentbugmail.pl script |
| up into the main directory, ensure it has execute permission, and run it |
| from the command line (or from a cron job) with no parameters. |
| </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: |
| --> |
| |