1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
<?xml version="1.0"?>
<packageimport name="bugassociate" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:project2="http://project2.randomdan.homeip.net">
<project2:sqlrows name="updatedlogs" datasource="postgres">
<sql>
SELECT f.filename, ft.searchroot || f.filename AS path, p.packageid
FROM files f, filetypes ft, packages p, categories c
WHERE f.filetypeid = ft.filetypeid
AND (f.cachedat IS NULL OR f.cachedat != f.moddate)
AND ft.filetypeid = 2
AND p.name = SPLIT_PART(filename, '/', 2)
AND c.name = SPLIT_PART(filename, '/', 1)
AND c.categoryid = p.categoryid
</sql>
</project2:sqlrows>
<project2:streamrows name="logcontent" encoding="utf-8" newline="" fieldSep="" quoteChar="">
<project2:filestream>
<path source="parent" name="path" depth="1" />
</project2:filestream>
<columns>
<text />
</columns>
</project2:streamrows>
<project2:regexrows name="logentries">
<sourceText source="parent" name="text" depth="1" />
<regex>(\d+ *(?:jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\w* \d+); *([^<]+)? *<([^ >]+)[>\s]\s*(?:[^:]*:)?\s*(.*?)(?:\R\*|\s*$|\R\R)</regex>
<columns>
<date />
<person />
<email />
<comment />
</columns>
</project2:regexrows>
<project2:sqlmerge name="changelogs" datasource="postgres" targettable="package_changelogs">
<updatewhere>
a.packageid IN (
SELECT p.packageid
FROM files f, packages p, categories c
WHERE f.filetypeid = 2
AND (f.cachedat IS NULL OR f.cachedat != f.moddate)
AND p.name = SPLIT_PART(filename, '/', 2)
AND c.name = SPLIT_PART(filename, '/', 1)
AND c.categoryid = p.categoryid)
</updatewhere>
<project2:iterate name="seelogs" source="updatedlogs">
<project2:iterate name="seelog" source="logcontent">
<project2:iterate name="seeentries" source="logentries">
<project2:if>
<project2:all>
<project2:validdatetest format="%d %b %Y">
<apply-to source="parent" name="date" depth="1" warn="no" />
</project2:validdatetest>
<project2:regextest regex=".+@.+">
<apply-to source="parent" name="email" depth="1" />
</project2:regextest>
</project2:all>
<project2:sqlmergeinsert>
<parameters>
<packageid source="parent" name="packageid" depth="3" />
<date source="parent" name="date" depth="1" />
<n source="parent" attribute="rownum" depth="1" />
<person source="parent" name="person" depth="1" />
<email source="parent" name="email" depth="1" />
<comment source="parent" name="comment" depth="1" />
</parameters>
</project2:sqlmergeinsert>
</project2:if>
</project2:iterate>
</project2:iterate>
</project2:iterate>
<columns>
<packageid key="true" />
<date key="true" />
<n key="true" />
<person />
<email />
<comment />
</columns>
</project2:sqlmerge>
<project2:sqltask name="update" datasource="postgres">
<sql>
UPDATE files SET
cachedat = moddate
WHERE filetypeid = 2
</sql>
</project2:sqltask>
</packageimport>
|