First cut. Distintly raw around the edges:
* Assumes it will be running in /home/ali/wk/slashem/web.scripts
* Assumes cache directory will be in topdir
* No build system (simple compiling and linking against libxml2)
* No configure system (eg., tagsoup)
* Output XML untested
* Doesn't set bugzilla maintainer or exporter
* Handling of artifact priorities and resolution is suspect
2 <xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:exsl="http://exslt.org/common"
5 extension-element-prefixes="exsl">
7 <xsl:variable name="users">
8 <xsl:for-each select="//artifact/field[@name='submitted_by' or @name='assigned_to']">
9 <user><xsl:value-of select="normalize-space(.)"/></user>
11 <xsl:for-each select="//artifact/field[@name='artifact_history']/history/field[@name='mod_by']">
12 <user><xsl:value-of select="normalize-space(.)"/></user>
14 <xsl:for-each select="//artifact/field[@name='artifact_messages']/message/field[@name='user_name']">
15 <user><xsl:value-of select="normalize-space(.)"/></user>
19 <xsl:variable name="sorted_users">
20 <xsl:for-each select="exsl:node-set($users)/user">
22 <xsl:copy-of select="."/>
26 <xsl:template match="/">
28 <xsl:for-each select="exsl:node-set($sorted_users)/user">
29 <xsl:if test="not(. = following-sibling::user[1])">
31 <xsl:value-of select="."/>
32 <xsl:text>@users.sourceforge.net</xsl:text>