#!/bin/bash


create_wiki_section () {
F_TARTET="$1" ; shift
F_SEARCH="$2" ; shift

curl -o search.csv 'https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Eclipse&component=IDE&component=UI&list_id=5935738&product=Platform&query_format=advanced&target_milestone='$F_SEARCH'&query_based_on=&columnlist=bug_id%2Ctarget_milestone%2Cassigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&ctype=csv'

cut -f1 -d, search.csv | grep -v bug_id >bugs.txt

PARAM=""

for f in $( cat bugs.txt ); do
	PARAM="${PARAM}&id=${f}"
done

curl -o bugs.xml 'https://bugs.eclipse.org/bugs/show_bug.cgi?ctype=xml&excludefield=attachmentdata'"$PARAM"
grep -v "DOCTYPE bugzilla SYSTEM" bugs.xml >bugs_tmp.xml

xsltproc -o bugs_f.xml wiki-sort.xsl bugs_tmp.xml

#xsltproc -o bugs_wiki.txt wiki-text.xsl bugs_f.xml

echo "== $F_TARGET =="
echo ""
echo '{| class="wikitable" border="1"'
echo '|-'
echo '! Bug !! TM !! Assign !! Status !! Title'

while read line; do
	if ( echo $line | grep "<bug_id>" >/dev/null ) ; then
		BUG=$( echo $line | sed 's/^.*<bug_id.//g' | sed 's/<\/bug_id.*$//g' )
	elif ( echo $line | grep "<short_desc>" >/dev/null ); then
		TITLE=$( echo $line | sed 's/^.*<short_desc.//g' | sed 's/<\/short_desc.*$//g' )
	elif (echo $line | grep "<bug_status>" >/dev/null ); then
		STATUS=$( echo $line | sed 's/^.*<bug_status.//g' | sed 's/<\/bug_status.*$//g' )
	elif (echo $line | grep "<resolution>" >/dev/null ); then
		if [ RESOLVED = "$STATUS" -o VERIFIED = "$STATUS" ]; then
        		STATUS=$( echo $line | sed 's/^.*<resolution.//g' | sed 's/<\/resolution.*$//g' )
			PRE="<strike>"
			POST="</strike>"
    		fi
	elif ( echo $line | grep "<target_milestone>" >/dev/null ); then
		TARGET=$(  echo $line | sed 's/^.*<target_milestone.//g' | sed 's/<\/target.*$//g' )
	elif (echo $line | grep "<assigned_to" >/dev/null ); then
		ASSIGNED_TO=$( echo $line | sed 's/^.*<assigned_to name="//g' | sed 's/">.*<\/assigned_to.*$//g' )
		echo '|-'
		echo "| $PRE{{bug|$BUG}}$POST || $TARGET || $ASSIGNED_TO || $STATUS || $TITLE"
		BUG=""
		TARGET=""
		TITLE=""
		STATUS=""
		ASSIGNED_TO=""
		PRE=""
		POST=""
	fi
done < bugs_f.xml

echo '|-'
echo '|}'

}

create_wiki_section 4.3.1 4.3.1
create_wiki_section "4.4 M1" 4.4%20M1
create_wiki_section "4.4 M2" 4.4%20M2
create_wiki_section "4.4 - unscheduled" 4.4

