diff options
| author | randomdan <randomdan@localhost> | 2011-07-28 23:58:39 +0000 | 
|---|---|---|
| committer | randomdan <randomdan@localhost> | 2011-07-28 23:58:39 +0000 | 
| commit | bf7b0b39318ca0152b60fb446207a24f64219109 (patch) | |
| tree | c5a929bbdad05eadd469ebace655169361c27fd9 | |
| parent | Scripts for licenses and use flags (diff) | |
| download | gentoobrowse-bf7b0b39318ca0152b60fb446207a24f64219109.tar.bz2 gentoobrowse-bf7b0b39318ca0152b60fb446207a24f64219109.tar.xz gentoobrowse-bf7b0b39318ca0152b60fb446207a24f64219109.zip | |
Half decent error handling in scripts with project2:handler[try/catch/finally]
Component to validate a date string
Merge some code (fixes sqlmerge missing attachments to ifs)
Minor fixes
New changelog importer in GB
| -rw-r--r-- | gentoobrowse/console/changelogs.xml | 81 | ||||
| -rw-r--r-- | gentoobrowse/console/packageimport.xml | 44 | 
2 files changed, 85 insertions, 40 deletions
| diff --git a/gentoobrowse/console/changelogs.xml b/gentoobrowse/console/changelogs.xml new file mode 100644 index 0000000..11235c4 --- /dev/null +++ b/gentoobrowse/console/changelogs.xml @@ -0,0 +1,81 @@ +<?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:filerows name="logcontent" encoding="utf-8" newline="" fieldSep=""> +		<path source="parent" name="path" depth="1" /> +		<columns><column>text</column></columns> +	</project2:filerows> +	<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*|$)</regex> +		<columns> +			<column>date</column> +			<column>person</column> +			<column>email</column> +			<column>comment</column> +		</columns> +	</project2:regexrows> +	<project2:sqlmerge name="changelogs" datasource="postgres" targettable="newchangelogs"> +		<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:validdatecheck format="%d %b %Y"> +							<apply-to source="parent" name="date" depth="1" warn="no" /> +						</project2:validdatecheck> +						<project2:regexcheck regex=".+@.+"> +							<apply-to source="parent" name="email" depth="1" /> +						</project2:regexcheck> +						<project2:sqlmergeinsert> +							<parameters> +								<param name="packageid"><value source="parent" name="packageid" depth="3" /></param> +								<param name="date"><value source="parent" name="date" depth="1" /></param> +								<param name="n"><value source="parent" attribute="rownum" depth="1" /></param> +								<param name="person"><value source="parent" name="person" depth="1" /></param> +								<param name="email"><value source="parent" name="email" depth="1" /></param> +								<param name="comment"><value source="parent" name="comment" depth="1" /></param> +							</parameters> +						</project2:sqlmergeinsert> +					</project2:if> +				</project2:iterate> +			</project2:iterate> +		</project2:iterate> +		<columns> +			<column key="true">packageid</column> +			<column key="true">date</column> +			<column key="true">n</column> +			<column>person</column> +			<column>email</column> +			<column>comment</column> +		</columns> +	</project2:sqlmerge> +	<project2:sqltask name="update" datasource="postgres"> +		<sql> +			UPDATE files SET +				cachedat = moddate +			WHERE filetypeid = 2 +		</sql> +	</project2:sqltask> +</packageimport> diff --git a/gentoobrowse/console/packageimport.xml b/gentoobrowse/console/packageimport.xml index b2c48ab..5dba528 100644 --- a/gentoobrowse/console/packageimport.xml +++ b/gentoobrowse/console/packageimport.xml @@ -169,46 +169,10 @@  		</columns>  	</project2:sqlmerge> -	<project2:sqlmerge name="changelogs" datasource="postgres" targettable="package_changelogs" useview="no"> -		<sql> -			SELECT packageid, -				CAST(r[1] AS DATE) AS DATE, -				RANK() OVER(PARTITION BY packageid, CAST(r[1] AS DATE) ORDER BY s.linebegin) AS n, -				r[2] AS person, -				r[3] AS email, -				(SELECT TRIM(SPLIT_PART(STRING_AGG(m.content, ' ' ORDER BY m.line), ':', 2)) -				 FROM filecache m -				 WHERE m.fileid=s.fileid -				 AND m.line >= s.linebegin -				 AND m.content not like '*%' -				 AND (m.line < s.lineend OR s.lineend IS NULL)) AS comment -			FROM (SELECT f.fileid, -					p.packageid, -					fc.line AS linebegin, -					REGEXP_MATCHES(content, '([0-9]{2} [[:alnum:]]+ [0-9]{2,4}); ?(.+)? <([^ >]+)') AS r, -					(SELECT MIN(line) -					 FROM filecache nl -					 WHERE nl.fileid = f.fileid -					 AND nl.content ~ '([0-9]{2} [[:alnum:]]+ [0-9]{2,4}); ?(.+)? <([^ >]+)' -					 AND nl.line > fc.line) AS lineend -					FROM filecache fc, files f, packages p, categories c -					WHERE f.fileid=fc.fileid -					AND f.filetypeid = 2 -					AND c.categoryid = p.categoryid -					AND p.name = SPLIT_PART(f.filename, '/', 2) -					AND c.name = SPLIT_PART(f.filename, '/', 1)) AS s -			WHERE IS_DATE(s.r[1]) -		</sql> -		<columns> -			<column key="true">packageid</column> -			<column key="true">date</column> -			<column key="true">n</column> -			<column>person</column> -			<column>email</column> -			<column>comment</column> -		</columns> -	</project2:sqlmerge> - +	<xi:include href="changelogs.xml" /> +	<xi:include href="packagelicenses.xml" /> +	<xi:include href="use.global.xml" /> +	<xi:include href="use.local.xml" />  	<xi:include href="categorymetadata.xml" />  	<xi:include href="packagemetadata.xml" />  	<xi:include href="packagemasks.xml" /> | 
