--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/tools/publish/nwiki.ant.xml Mon May 10 19:54:49 2010 +0100
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+Name : nwiki.ant.xml
+Part of : Helium
+
+Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+All rights reserved.
+This component and the accompanying materials are made available
+under the terms of the License "Eclipse Public License v1.0"
+which accompanies this distribution, and is available
+at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+Initial Contributors:
+Nokia Corporation - initial contribution.
+
+Contributors:
+
+Description:
+
+============================================================================
+-->
+<!--* @package publishing -->
+<project name="publish.nwiki" xmlns:hlm="http://www.nokia.com/helium">
+ <description>
+ Publishing to the nwiki
+ </description>
+
+ <!-- Macro to create a nwiki page
+ Notes:
+ - whatever page name is passed will be translated to upper case
+ -->
+ <macrodef name="nwikiCreatePageMacro" uri="http://www.nokia.com/helium">
+ <attribute name="username" />
+ <attribute name="password" />
+ <attribute name="domain" />
+ <attribute name="location" />
+ <attribute name="nwiki-formatted-data" />
+ <attribute name="page-name" />
+ <sequential>
+ <hlm:python>
+import urllib
+import urllib2
+
+passman=urllib2.HTTPPasswordMgrWithDefaultRealm()
+
+passman.add_password(None, '@{domain}', '@{username}', '@{password}')
+
+auth_handler = urllib2.HTTPBasicAuthHandler(passman)
+
+opener = urllib2.build_opener(auth_handler)
+
+urllib2.install_opener(opener)
+
+values = {'text':r"""@{nwiki-formatted-data}""",
+ 'formtemplate':'',
+ 'topicparent':'',
+ 'cmd':'',
+ 'sig':'--+Main.@{username}',
+ 'unlock':'on',
+ 'action':'Save'}
+
+post_data = urllib.urlencode(values)
+
+uppercase_page_name = "@{page-name}".upper()
+
+req = urllib2.Request(url='http://@{domain}/save/@{location}/'+uppercase_page_name,
+ data=post_data)
+
+
+print "Wiki Page Created at: http://@{domain}/@{location}/"+uppercase_page_name
+
+f = urllib2.urlopen(req)
+ </hlm:python>
+ </sequential>
+ </macrodef>
+
+ <!-- This target removes dots from the wiki page name because nwiki cannot handle dots in the name -->
+ <target name="remove-build-version-dots">
+ <propertyregex property="wiki.build.version" input="${build.version}" regexp="([.]*)\.([.]*)" replace="\1\2" casesensitive="false" global="true" />
+ <echo message="build.version = ${build.version}" />
+ <echo message="wiki.build.version = ${wiki.build.version}" />
+ </target>
+
+ <!-- Reads the BOM.txt and uploads it to the nwiki
+ Notes:
+ - it can't handle dots in build.name
+ - it wraps the BOM.txt in "pre" tags for
+ the wiki to interpret the text verbatim
+ - nwiki.domain is typically nwiki.nokia.com
+ - location could be, MBPVancouver for example
+ -->
+ <target name="create-wiki-bom" depends="remove-build-version-dots,get-nwiki-username,get-nwiki-password" if="publish">
+ <loadfile property="temp-bom-data" srcfile="${prep.log.dir}/${build.name}_${build.version}_BOM.txt" failonerror="false">
+ </loadfile>
+ <if>
+ <isset property="temp-bom-data" />
+ <then>
+ <hlm:nwikiCreatePageMacro username="${nwiki.username}" password="${nwiki.password}" domain="${nwiki.domain}" location="${nwiki.location}" nwiki-formatted-data="<pre>${temp-bom-data}</pre>" page-name="${build.name}_${wiki.build.version}_BOM" />
+ </then>
+ </if>
+ </target>
+
+ <!-- Reads the BOM_delta.txt and uploads it to the nwiki
+ Known quirks:
+ - it can't handle dots in build.name
+ - it wraps the BOM_delta.txt in "pre" tags for
+ the wiki to interpret the text verbatim
+ - nwiki.domain is typically nwiki.nokia.com
+ - location could be, MBPVancouver for example
+ -->
+ <target name="create-wiki-bom-delta" depends="remove-build-version-dots,get-nwiki-username,get-nwiki-password" if="publish">
+ <loadfile property="temp-bom-delta-data" srcfile="${prep.log.dir}/${build.name}_${build.version}_BOM_delta.txt" failonerror="false">
+ </loadfile>
+
+ <if>
+ <isset property="temp-bom-delta-data" />
+ <then>
+ <hlm:nwikiCreatePageMacro username="${nwiki.username}" password="${nwiki.password}" domain="${nwiki.domain}" location="${nwiki.location}" nwiki-formatted-data="<pre>${temp-bom-delta-data}</pre>" page-name="${build.name}_${wiki.build.version}_BOM_delta" />
+ </then>
+ </if>
+ </target>
+
+ <!-- Retrieve the NWiki password from the .netrc file and store it into nwiki.password property. -->
+ <target name="get-nwiki-password">
+ <hlm:netrcPasswordMacro output-prop="nwiki.password" result-prop="nwiki.password.available" type="nwiki" />
+ <hlm:logreplace regexp="${nwiki.password}"/>
+ </target>
+
+ <!-- Retrieve the NWiki username from the .netrc file and store it into nwiki.username property. -->
+ <target name="get-nwiki-username">
+ <hlm:netrcUsernameMacro output-prop="nwiki.username" result-prop="nwiki.username.available" type="nwiki" />
+ </target>
+
+
+</project>
\ No newline at end of file