<!-- <!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. However, they
    have not yet been updated to work with 2.16 (post-templatisation.).
    There are three files - <filename>query.conf</filename>, 
    <filename>buglist</filename> and <filename>bugs</filename>.</para>
    
    <para><filename>query.conf</filename> 
    contains the mapping from options to field
    names and comparison types. Quoted option names are "grepped" 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 "option".</para>

    <para><filename>buglist</filename>
    is a shell script which submits a Bugzilla query and writes
    the resulting HTML page to stdout. It supports both short options, (such
    as "-Afoo" or "-Rbar") and long options (such as "--assignedto=foo" or
    "--reporter=bar"). If the first character of an option is not "-", it is
    treated as if it were prefixed with "--default=".</para>

    <para>The column list is taken from the COLUMNLIST environment variable.
    This is equivalent to the "Change Columns" option 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
    "http://bugzilla.mozilla.org/buglist.cgi?bug_id=" 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>

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

