<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <appendix id="patches" xreflabel="Useful Patches and Utilities for Bugzilla"> <title>Useful Patches and Utilities for Bugzilla</title> <para>Are you looking for a way to put your Bugzilla into overdrive? Catch some of the niftiest tricks here in this section.</para> <section id="rewrite" xreflabel="Apache mod_rewrite magic"> <title>Apache <filename>mod_rewrite</filename> magic</title> <para>Apache's <filename>mod_rewrite</filename> module lets you do some truly amazing things with URL rewriting. Here are a couple of examples of what you can do.</para> <orderedlist> <listitem> <para>Make it so if someone types <computeroutput>http://www.foo.com/12345</computeroutput> , Bugzilla spits back http://www.foo.com/show_bug.cgi?id=12345. Try setting up your VirtualHost section for Bugzilla with a rule like this:</para> <programlisting><![CDATA[ <VirtualHost 12.34.56.78> RewriteEngine On RewriteRule ^/([0-9]+)$ http://foo.bar.com/show_bug.cgi?id=$1 [L,R] </VirtualHost> ]]></programlisting> </listitem> <listitem> <para>There are many, many more things you can do with mod_rewrite. Please refer to the mod_rewrite documentation at <ulink url="http://www.apache.org">http://www.apache.org</ulink>. </para> </listitem> </orderedlist> </section> <section id="cmdline"> <title>Command-line Bugzilla Queries</title> <para>There are a suite of Unix utilities for querying 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.sgml" "book" "chapter") sgml-shorttag:t sgml-tag-region-if-active:t End: -->