patches.xml 4.81 KB
Newer Older
1
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
2
<appendix id="patches" xreflabel="Useful Patches and Utilities for Bugzilla">
3
  <title>Contrib</title>
4

5 6 7 8 9
  <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>
10

11
  <section id="cmdline">
12
    <title>Command-line Search Interface</title>
13

14 15 16 17 18
    <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>,
19
      <filename>buglist</filename> and <filename>bugs</filename>.
20 21 22
    </para>

    <warning>
23 24 25 26
      <para>
        These files pre-date the templatisation work done as part of the
        2.16 release, and have not been updated.
      </para>
27
    </warning>
28
    
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
    <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>
69
    </para>
70

71 72 73 74 75 76 77 78 79 80 81
  </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.
82
    </para>
83

84 85
    <para>
      To accomplish this task, <filename>sendunsentbugmail.pl</filename> uses
86
      the same mechanism as the <filename>sanitycheck.cgi</filename> script;
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
      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>
103 104 105
      <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.
106
    </para>
107 108
  </section>

109
</appendix>
110

111 112 113 114
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-always-quote-attributes:t
115 116
sgml-auto-insert-required-elements:t
sgml-balanced-tag-edit:t
117
sgml-exposed-tags:nil
118 119 120
sgml-general-insert-case:lower
sgml-indent-data:t
sgml-indent-step:2
121 122
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
123 124 125
sgml-minimize-attributes:nil
sgml-namecase-general:t
sgml-omittag:t
126
sgml-parent-document:("Bugzilla-Guide.xml" "book" "chapter")
127 128
sgml-shorttag:t
sgml-tag-region-if-active:t
129 130
End:
-->
131