<?xml version="1.0"?>
<!--************************************************************************
 * Copyright (c) 2007-2008, Eclipse Foundation
 * The code, documentation and other materials contained herein have been
 * licensed under the Eclipse Public License - v 1.0 by the copyright holder
 * listed above, as the Initial Contributor under such license. The text of
 * such license is available at www.eclipse.org.
 ************************************************************************-->
<project
    name="project"
    default="default" 
	  basedir=".">
    <taskdef
        name="AddEntry"
        classname="org.eclipse.releng.generators.rss.RSSFeedAddEntryTask"
        classpath="org.eclipse.build.tools/feedTools.jar" />
    <target
        name="get.properties">
		<!-- Note: the "highest level of override is for someone to specify their
		     own location and name for the ganymatic properties. But, if not specified 
		     already, we'll try ${user.home}/ganymedeConfig/ganymatic.properties.
		     After that, we will still use our production machine defaults since it 
		     won't hurt if users override all the values (and is the only values used on 
		     production build machine). 
		 -->
        <property
            environment="env" />
        <property
            name="ganymatic.properties.file"
            location="${user.home}/ganymedeConfig/ganymatic.properties" />
        <property name="EOL" value="${line.separator}"/>
     
    	<!-- avoid writes to 'tools' directory ... occasionally can have permission problems
    	if 'tools' is not checked out with orbitBuild id
    	
    	  <echo message="G_CVS_WRITE_INFO: ${env.G_CVS_WRITE_INFO}${EOL}" file="debugScripts.txt"/>
        <echo message="cctimestamp: ${cctimestamp}${EOL}" file="debugScripts.txt" append="true"/>
    	  <echo message="TAG_PROJECTS: ${env.TAG_PROJECTS}${EOL}" file="debugScripts.txt" append="true"/>
    	  <echo message="currentDirectory: ${basedir}" file="debugScripts.txt" append="true"/>
    	  -->
		<!-- <echo message="    Properties being read from ${ganymatic.properties.file}" /> -->
        <property
            file="${ganymatic.properties.file}" />

		<!-- <echo message="    Properties being read from ganymatic.properties" /> -->
        <property
            file="ganymatic.properties" />

		<!-- <echo message="staging.dir: ${staging.dir}" /> -->
		<!-- now verify -->
        <antcall
            target="verify.properties.ganymatic.website.dir" />
        <antcall
            target="verify.properties.ganymatic.website.url" />
    </target>
    <target
        name="generate.ganymatic.website"
        description="Generate the base Ganymatic website">
        <mkdir
            dir="${ganymatic.website.dir}" />
        <mkdir
            dir="${ganymatic.website.dir}/latest/" />
        <mkdir
            dir="${ganymatic.website.dir}/latest-good/" />
        <mkdir
            dir="${ganymatic.website.dir}/recent/" />
        <copy
            overwrite="true"
            verbose="true"
            todir="${ganymatic.website.dir}">
            <fileset
                dir="website/" />
        </copy>
        <antcall
            target="set.permissions" />
    </target>
    <target
        name="compile.webgen"
        description="Compile the Java code for the webgen tool">
        <mkdir
            dir="bin/" />
        <javac
            srcdir="src/"
            destdir="bin/">
            <include
                name="**/*.java" />
        </javac>
    </target>
    <target
        name="start.latest.log"
        description="Reset the latest log for a new run"
        depends="compile.webgen">
        <delete
            verbose="true">
            <fileset
                dir="${ganymatic.website.dir}/latest/"
                includes="**/*" />
        </delete>
        <java
            classpath="bin/"
            classname="org.eclipse.ganymede.webgen.GenerateStatusFile">
            <arg
                value="${ganymatic.website.dir}/latest/" />
        </java>
    </target>
    <target
        name="run.siteassembler"
        description="Run the site assembler">
        <antcall
            target="start.latest.log" />
        <echo
            message="starting inner" />
        <subant
            antfile="build-inner.xml"
            buildpath="."
            failonerror="false"
            output="${ganymatic.website.dir}/latest/log.txt">
        </subant>
		<!-- <copy
			verbose="true"
			tofile="${ganymatic.website.dir}/latest/log.txt">
				<fileset file="samplelog.txt"/>
		</copy> -->
        <echo
            message="end of inner" />
        <antcall
            target="parse.log.file" />
    </target>
    <target
        name="copy.to.staging"
        description="Copy the generated site to the staging directory"
        depends="get.properties,get.build.status.properties"
        if="ganymatic.build.successful">
        <antcall
            target="copy.to.staging.inner" />
    </target>
    <target
        name="copy.to.staging.inner"
        if="staging.dir">
        <property
            name="site.dir.loc"
            location="${site.dir}" />
        <delete failonerror="false" verbose="true">
            <fileset
                dir="${staging.dir}"
                includes="site.xml" />
            <fileset
                dir="${staging.dir}/features" />
            <fileset
                dir="${staging.dir}/plugins" />
            <fileset
                dir="${staging.dir}"
                includes="digest.zip" />
            <fileset
                dir="${staging.dir}"
                includes="content.jar" />
            <fileset
                dir="${staging.dir}"
                includes="artifacts.jar" />                                                
            <fileset
                dir="${staging.dir}/bin" />
        </delete>
        <copy
            todir="${staging.dir}"
            verbose="true">
            <dirset
                dir="${site.dir.loc}"
                includes="features" />
            <dirset
                dir="${site.dir.loc}"
                includes="plugins" />
            <fileset
                dir="${site.dir.loc}"
                includes="*" />
            <fileset
                dir="${site.dir.loc}"
                includes="**/*" />
        </copy>
        <chmod
            perm="a+rx"
            verbose="true">
            <dirset
                dir="${staging.dir}"
                includes="**/*" />
        </chmod>
        <chmod
            perm="a+r"
            verbose="true"
            parallel="false">
            <fileset
                dir="${staging.dir}"
                includes="**/*" />
        </chmod>
		<!-- And also, create fresh digest for staging. -->
		<!-- TODO: this would need work to be platform independent, 
		     but shouldn't be too hard, since the shell script uses java and jar processor 
		     would mostly just have to get "ant variables" from the several environment variables -->
        
        <exec
            dir="${env.GANYMEDE_BUILD_HOME}/workingdir/org.eclipse.ganymede.tools"
            executable="sh"
            os="Linux"
            failonerror="false">
            <arg
                line="createDigest.sh" />
        </exec>
        <exec
            dir="${env.GANYMEDE_BUILD_HOME}/workingdir/org.eclipse.ganymede.tools"
            executable="sh"
            os="Linux"
            failonerror="false">
            <arg
                line="createP2repo.sh" />
        </exec>         
    </target>
    <target
        name="parse.log.file"
        description="Parse the log file and generate the web pages">
        <java
            classpath="bin/"
            classname="org.eclipse.ganymede.webgen.ParseLogFile">
            <arg
                value="${ganymatic.website.dir}/latest/" />
        </java>
        <chmod
            perm="a+r"
            verbose="true">
            <fileset
                dir="${ganymatic.website.dir}/latest">
                <include
                    name="**/*" />
            </fileset>
        </chmod>
    </target>
    <target
        name="get.build.status.properties"
        description="Get the latest build status as properties so that we can make decisions based on them">
        <java
            classpath="bin/"
            classname="org.eclipse.ganymede.webgen.GetStatusAsPropertyFile">
            <arg
                value="${ganymatic.website.dir}/latest/" />
            <arg
                value="end-time-property-file.properties" />
        </java>
        <property
            file="end-time-property-file.properties" />

		<!-- <copy file="end-time-property-file.properties" tofile="debug_end-time-property-file.properties"/> -->
        <delete
            file="end-time-property-file.properties" />
    </target>
    <target
        name="update.recent"
        description="Copy latest to recent and trim number of recent if needed"
        depends="get.build.status.properties">
		<!-- could use symbolic links on unix systems instead of copying the directories; if I knew how to do operating system variants of ant files, I would -->
        <mkdir
            dir="${ganymatic.website.dir}/recent/${ganymatic.build.endtime}/" />
        <copy
            verbose="true"
            todir="${ganymatic.website.dir}/recent/${ganymatic.build.endtime}/">
            <fileset
                dir="${ganymatic.website.dir}/latest/" />
        </copy>
		<!-- delete files from previous run, if they exist. They are left 
		     after the run, to easy debugging -->
        <delete
            file="trim-these-recent-dirs.txt"
            failonerror="false" />
        <delete
            file="trim-these-recent-dirs2.txt"
            failonerror="false" />
        <java
            classpath="bin/"
            classname="org.eclipse.ganymede.webgen.GetRecentTrimAsFile">
            <arg
                value="${ganymatic.website.dir}/recent/" />
            <arg
                value="trim-these-recent-dirs.txt" />
            <arg
                value="trim-these-recent-dirs2.txt" />
        </java>
        <delete
            verbose="true">
            <fileset
                dir="${ganymatic.website.dir}/recent/"
                includesfile="trim-these-recent-dirs.txt"
                defaultexcludes="no">
            </fileset>
        </delete>
        <delete
            verbose="true"
            includeemptydirs="true">
            <dirset
                dir="${ganymatic.website.dir}/recent/"
                includesfile="trim-these-recent-dirs2.txt">
            </dirset>
        </delete>
    </target>
    <target
        name="update.latest-good"
        description="Copy latest to latest-good if it was successful"
        depends="get.build.status.properties"
        if="ganymatic.build.successful">
        <copy
            overwrite="true"
            verbose="true"
            todir="${ganymatic.website.dir}/latest-good/">
            <fileset
                dir="${ganymatic.website.dir}/latest/" />
        </copy>
        <antcall target="tagProjects" />
    </target>
    <target
        name="default"
        description="The main target"
        depends="setup,run.siteassembler,copy.to.staging,report">
    </target>
    <target
        name="setup"
        description="Set up the environment"
        depends="get.properties,generate.ganymatic.website">
    </target>
    <target
        name="report"
        description="Process the logs and generate reports"
        depends="update.recent,update.latest-good,publish.all.rss,publish.failed.rss,publish.successful.rss,email.on.failure,set.permissions">
    </target>
    <target
        name="set.permissions"
        description="Ensure that all files in the output directory are world readable">
		<!-- be specific, since our "website" contains other big directories that are not part of website -->
        <chmod
            perm="a+r"
            verbose="true">
            <fileset
                dir="${ganymatic.website.dir}">
                <include
                    name="*" />
                <include
                    name="latest/**/*" />
                <include
                    name="latest-good/**/*" />
                <include
                    name="recent/**/*" />
            </fileset>
        </chmod>
        <chmod
            perm="a+rx"
            verbose="true">
            <dirset
                dir="${ganymatic.website.dir}">
                <include
                    name="latest/**/*" />
                <include
                    name="latest-good/**/*" />
                <include
                    name="recent/**/*" />
            </dirset>
        </chmod>
    </target>
    <target
        name="email.on.failure"
        description="Email failure notices to responsible parties"
        depends="checkEmailEnabled"
        if="emailEnabled">
        <echo
            message="Email failure notices to ${ganymatic.build.error.emails}" />
        <antcall
            target="inner.email.on.failure" />
    </target>
    <target
        name="inner.email.on.failure"
        description="Really do the emailing"
        if="ganymatic.email.from.address">
        <mail
            tolist="${ganymatic.build.error.emails}"
            subject="Ganymede build failed"
            encoding="plain"
            failonerror="false">
            <from
                name="${ganymatic.email.from.name}"
                address="${ganymatic.email.from.address}" />
            <message>This auto-generated email is to inform you that
                the Ganymede build has failed and your project has been
                "blamed" by the auto-blame-parsing system. Please check
                the log (${ganymatic.website.url}) and fix any errors
                associated with your project.</message>
        </mail>
    </target>
    <target
        name="create.build.alias.success"
        if="ganymatic.build.successful">
        <property
            name="build.alias"
            value="${buildAlias}" />
    </target>
    <target
        name="create.build.alias.fail"
        unless="ganymatic.build.successful">
        <property
            name="build.alias"
            value="${buildAlias} !!FAILED!!" />
    </target>
    <target
        name="publish.all.rss"
        description="Publish the RSS feed"
        depends="create.build.alias.success,create.build.alias.fail">
        <echo
            message="Publishing the main RSS feed" />
        <property
            file="org.eclipse.build.tools/blank.properties" />
		<!-- Add an entry (and create the feed if it doesn't already exist) -->
        <AddEntry
            debug="0"
            file="${ganymatic.website.dir}/builds.rss"
            project="${project}"
            version="${version}"
            branch="${branch}"
            buildID="${ganymatic.build.endtime}"
            buildtype="I"
            feedURL="${ganymatic.website.url}/builds.rss"
            buildURL="${ganymatic.website.url}/recent/${ganymatic.build.endtime}"
            buildAlias="${build.alias}"
            buildDetailURL="${buildDetailURL}"
            buildConfigURL="${buildConfigURL}"
            buildLogURL="${buildLogURL}"
            buildMapURL="${buildMapURL}"
            dependencyURLs="${dependencyURLs}"
            releases="${Releases}"
            releaseNotesURL="${releaseNotesURL}"
            updateManagerURL="${updateManagerURL}"
            downloadsURL="${downloadsURL}"
            jarSigningStatus="${jarSigningStatus}"
            coordinatedStatus="${coordinatedStatus}"
            coordinatedDetails="${coordinatedDetails}"
            JUnitTestURL="${JUnitTestURL}"
            performanceTestURL="${performanceTestURL}"
            APITestURL="${APITestURL}"
            JUnitTestResults="${JUnitTestResults}"
            performanceTestResults="${performanceTestResults}"
            APITestResults="${APITestResults}" />
    </target>
    <target
        name="publish.failed.rss"
        description="Publish the RSS feed"
        depends="publish.all.rss"
        unless="ganymatic.build.successful">
        <echo
            message="Publishing the failed RSS feed" />
        <property
            file="org.eclipse.build.tools/blank.properties" />
		<!-- Add an entry (and create the feed if it doesn't already exist) -->
        <AddEntry
            debug="0"
            file="${ganymatic.website.dir}/fail.rss"
            project="${project}"
            version="${version}"
            branch="${branch}"
            buildID="${ganymatic.build.endtime}"
            buildtype="I"
            feedURL="${ganymatic.website.url}/fail.rss"
            buildURL="${ganymatic.website.url}/recent/${ganymatic.build.endtime}"
            buildAlias="${build.alias}"
            buildDetailURL="${buildDetailURL}"
            buildConfigURL="${buildConfigURL}"
            buildLogURL="${buildLogURL}"
            buildMapURL="${buildMapURL}"
            dependencyURLs="${dependencyURLs}"
            releases="${Releases}"
            releaseNotesURL="${releaseNotesURL}"
            updateManagerURL="${updateManagerURL}"
            downloadsURL="${downloadsURL}"
            jarSigningStatus="${jarSigningStatus}"
            coordinatedStatus="${coordinatedStatus}"
            coordinatedDetails="${coordinatedDetails}"
            JUnitTestURL="${JUnitTestURL}"
            performanceTestURL="${performanceTestURL}"
            APITestURL="${APITestURL}"
            JUnitTestResults="${JUnitTestResults}"
            performanceTestResults="${performanceTestResults}"
            APITestResults="${APITestResults}" />
    </target>
    <target
        name="publish.successful.rss"
        description="Publish the RSS feed"
        depends="publish.all.rss"
        if="ganymatic.build.successful">
        <echo
            message="Publishing the successful RSS feed" />
        <property
            file="org.eclipse.build.tools/blank.properties" />
		<!-- Add an entry (and create the feed if it doesn't already exist) -->
        <AddEntry
            debug="0"
            file="${ganymatic.website.dir}/success.rss"
            project="${project}"
            version="${version}"
            branch="${branch}"
            buildID="${ganymatic.build.endtime}"
            buildtype="I"
            feedURL="${ganymatic.website.url}/success.rss"
            buildURL="${ganymatic.website.url}/recent/${ganymatic.build.endtime}"
            buildAlias="${build.alias}"
            buildDetailURL="${buildDetailURL}"
            buildConfigURL="${buildConfigURL}"
            buildLogURL="${buildLogURL}"
            buildMapURL="${buildMapURL}"
            dependencyURLs="${dependencyURLs}"
            releases="${Releases}"
            releaseNotesURL="${releaseNotesURL}"
            updateManagerURL="${updateManagerURL}"
            downloadsURL="${downloadsURL}"
            jarSigningStatus="${jarSigningStatus}"
            coordinatedStatus="${coordinatedStatus}"
            coordinatedDetails="${coordinatedDetails}"
            JUnitTestURL="${JUnitTestURL}"
            performanceTestURL="${performanceTestURL}"
            APITestURL="${APITestURL}"
            JUnitTestResults="${JUnitTestResults}"
            performanceTestResults="${performanceTestResults}"
            APITestResults="${APITestResults}" />
    </target>
    <target
        name="verify.properties.ganymatic.website.dir"
        unless="ganymatic.website.dir">
        <echo
            message="Missing: ganymatic.website.dir" />
        <antcall
            target="verify.properties.error" />
    </target>
    <target
        name="verify.properties.ganymatic.website.url"
        unless="ganymatic.website.url">
        <echo
            message="Missing: ganymatic.website.url" />
        <antcall
            target="verify.properties.error" />
    </target>
    <target
        name="verify.properties.error">
        <echo
            message="Required properties were not defined in a ganymatic.properties, for example '${user.home}/ganymedeConfig/ganymatic.properties' file." />
        <echo
            message="Please create a ganymatic.properties file in your home directory, in a directory named ganymedeConfig." />
        <echo
            message="Use the examples/ganymatic.properties* files as templates for your file." />
        <echo
            message="The ganymatic.properties file defines the directories, etc for the builds on your machine." />
        <fail
            message="No properties defined; failed to build" />
    </target>
    <target
        name="checkEmailEnabled">
		<!-- send email only if explicitly enabled, as it would be on production build machine, 
	           but not on local or test machines -->
        <condition
            property="emailEnabled">
        	  <and>
            <equals
                arg1="true"
                arg2="${env.ENABLE_EMAIL}" />
        	  	<isset property="ganymatic.build.error.emails" />
        	  	</and>
        </condition>
    	  <echo message="ENABLE_EMAIL: ${env.ENABLE_EMAIL}" />
    	  <echo message="ganymatic.build.error.emails: ${ganymatic.build.error.emails}" />
    	  <echo message="emailEnabled: ${emailEnabled}" />
    </target>
    <target
        name="tagProjects"
        depends="checkTagProjects"
        if="tagCVSProjects">
        <cvs
            cvsRoot="${env.G_CVS_WRITE_INFO}/cvsroot/callisto"
            dest="${env.GANYMEDE_BUILD_HOME}/workingdir/org.eclipse.ganymede.tools"
            command="tag v${cctimestamp}" />
        <cvs
            cvsRoot="${env.G_CVS_WRITE_INFO}/cvsroot/callisto"
            dest="${env.GANYMEDE_BUILD_HOME}/workingdir/org.eclipse.ganymede.sitecontributions"
            command="tag v${cctimestamp}" />
        <echo message="   tagged site contributions for this build with v${cctimestamp}" />            
    </target>
    <!-- only tag projects if both a "write id" has been provided, and tag_projects variable set -->
    <target
      name="checkTagProjects">
      <condition
            property="tagCVSProjects">
            <and>
              <equals
                  arg1="${env.TAG_PROJECTS}"
                  arg2="true" />
              <isset property="cctimestamp" />
              <isset property="env.G_CVS_WRITE_INFO" />
            </and>
      </condition>
    	<echo message="TAG_PROJECTS: ${env.TAG_PROJECTS}"/>
    	<echo message="cctimestamp: ${cctimestamp}"/>
    	<echo message="G_CVS_WRITE_INFO: ${env.G_CVS_WRITE_INFO}"/>
      <echo message="tagCVSProjects: ${tagCVSProjects}"/>
     </target>
</project>