<?xml version="1.0"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->

<project name="CreateInstallerReleaseCandidate" default="main" basedir=".">


    <!-- Required for OSX 10.6 / Snow Leopard Performance. -->
    <!-- Java 7 on Mac requires OSX 10.7.3 or higher and is 64-bit only -->
    <!-- local.d32 is set/used in build.properties so this needs to be done first. -->
    <condition property="local.d32" value="-d32">
        <and>
            <os family="windows"/>
            <equals arg1="${sun.arch.data.model}" arg2="64"/>
            <equals arg1="${os.arch}" arg2="x86_64"/>
            <equals arg1="${ant.java.version}" arg2="1.6"/>
        </and>
    </condition>

    <condition property="isMac" value="mac">
        <os family="mac" />
    </condition>
    <condition property="isWindows" value="windows">
        <os family="windows" />
    </condition>
    <condition property="isLinux" value="linux">
		<and>
			<os family="unix" />
			<not>
				<isset property="isMac" />
			</not>
		</and>
    </condition>
	
	<property name="rat.report" value="${basedir}/rat-report.txt"/>
	<property name="apache.rat.jar" value="apache-rat-0.11.jar" />
	<property name="apache.rat.tasks.jar" value="apache-rat-tasks-0.11.jar" />
	<property name="apache.rat.url" value="http://search.maven.org/remotecontent?filepath=org/apache/rat/apache-rat/0.11"/>
	<property name="apache.rat.tasks.url" value="http://search.maven.org/remotecontent?filepath=org/apache/rat/apache-rat-tasks/0.11"/>
    
	<property file="${basedir}/local.properties" />
	<condition property="CERT_PASSWORD_FILE" value="${CERT_PASSWORD_FILE_WIN}" >
		<and>
			<not>
				<available file="${CERT_PASSWORD_FILE}" />
			</not>
			<available file="${CERT_PASSWORD_FILE_WIN}" />
		</and>
	</condition>
	<condition property="CERT_PASSWORD_FILE" value="${CERT_PASSWORD_FILE_MAC}" >
		<and>
			<not>
				<available file="${CERT_PASSWORD_FILE}" />
			</not>
			<available file="${CERT_PASSWORD_FILE_MAC}" />
		</and>
	</condition>
	<condition property="RELEASE_KEYSTORE_FILE" value="${RELEASE_KEYSTORE_FILE_WIN}" >
		<and>
			<not>
				<available file="${RELEASE_KEYSTORE_FILE}" />
			</not>
			<available file="${RELEASE_KEYSTORE_FILE_WIN}" />
		</and>
	</condition>
	<condition property="RELEASE_KEYSTORE_FILE" value="${RELEASE_KEYSTORE_FILE_MAC}" >
		<and>
			<not>
				<available file="${RELEASE_KEYSTORE_FILE}" />
			</not>
			<available file="${RELEASE_KEYSTORE_FILE_MAC}" />
		</and>
	</condition>
	<property file="${basedir}/build.properties" />
    <property file="${basedir}/build.number"/>
	   
    <property environment="env"/>
    
	<condition property="do.copy.downloads" >
		<isset property="download.cache.dir" /> 
	</condition>
	
    <condition property="CRLF" value="%0D%0A">
        <isset property="isWindows" />
    </condition>
    <property name="CRLF" value="%0A" />
    
    <fail message="The my.name property is not set to the RM's name"
    unless="my.name"/>
    
    <fail message="The ANT_HOME environment variable is not set."
        unless="env.ANT_HOME"/>
		
	<available file="${svn.dist.dev}"
		type="dir" 
		property="dist.dev" value="${svn.dist.dev}" />
    
	<fail message="The svn.dist.dev property is not set to the working copy for https://dist.apache.org/repos/dist/dev."
        unless="dist.dev"/>
				
	<available file="${env.AIR_HOME}"
		type="dir" 
		property="AIR_HOME" value="${env.AIR_HOME}" />

    <fail message="The AIR_HOME property is not set in environment or command-line."
        unless="AIR_HOME"/>
		
    <available file="${env.PLAYERGLOBAL_HOME}"
        type="dir"
        property="PLAYERGLOBAL_HOME" value="${env.PLAYERGLOBAL_HOME}" />
    
    <fail message="The PLAYERGLOBAL_HOME property is not set in environment or command-line."
        unless="PLAYERGLOBAL_HOME"/>
    
    <available file="${env.FLASHPLAYER_DEBUGGER}"
        type="dir"
        property="FLASHPLAYER_DEBUGGER" value="${env.FLASHPLAYER_DEBUGGER}" />
    
    <available file="${env.FLASHPLAYER_DEBUGGER}"
        type="file"
        property="FLASHPLAYER_DEBUGGER" value="${env.FLASHPLAYER_DEBUGGER}" />
    
    <fail message="The FLASHPLAYER_DEBUGGER property is not set in environment or command-line."
        unless="FLASHPLAYER_DEBUGGER"/>
        
    <available file="${env.ProgramFiles}/Mozilla Firefox/firefox.exe"
		type="file"
		property="browser" value="${env.ProgramFiles}/Mozilla Firefox/firefox.exe" />
    <available file="${env.ProgramFiles(x86)}/Mozilla Firefox/firefox.exe"
		type="file"
		property="browser" value="${env.ProgramFiles}/Mozilla Firefox/firefox.exe" />
    <available file="/Applications/Firefox.app/Contents/MacOS/firefox"
		type="file"
		property="browser" value="/Applications/Firefox.app/Contents/MacOS/firefox" />
        
    <available file="${env.ANT_HOME}/lib/${apache.rat.jar}"
        type="file"
        property="apache.rat.found"/>
    <available file="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}"
        type="file"
        property="apache.rat.tasks.found"/>
		
    <fail message="Could not locate Firefox.  Please specify a browser with
    -Dbrowser=&lt;path-to-browser&gt;"
        unless="browser"/>
        
    <available file="${env.ProgramFiles}/SlikSVN/bin/svn.exe"
		type="file"
		property="svn" value="${env.ProgramFiles}/SlikSVN/bin/svn.exe" />
    <available file="${env.ProgramFiles(x86)}/SlikSVN/bin/svn.exe"
		type="file"
		property="svn" value="${env.ProgramFiles}/SlikSVN/bin/svn.exe" />
    <available file="/opt/subversion/bin/svn"
		type="file"
		property="svn" value="/opt/subversion/bin/svn" />
    <fail message="Could not locate SVN command-line.  Please specify the path to SVN with
    -Dsvn=&lt;path-to-svn&gt;"
        unless="svn"/>
                
    <available file="${env.ProgramFiles}/Git/bin/git.exe"
		type="file"
		property="git" value="${env.ProgramFiles}/Git/bin/git.exe" />
    <available file="${env.ProgramFiles(x86)}/Git/bin/git.exe"
		type="file"
		property="git" value="${env.ProgramFiles}/Git/bin/git.exe" />
    <available file="/usr/local/git/bin/git"
		type="file"
		property="git" value="/usr/local/git/bin/git" />
    <fail message="Could not locate Git command-line.  Please specify the path to Git with
    -Dgit=&lt;path-to-git&gt;"
        unless="git"/>
        
    <available file="${env.ANT_HOME}/lib/${apache.rat.jar}"
        type="file"
        property="apache.rat.found"/>
    <available file="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}"
        type="file"
        property="apache.rat.tasks.found"/>
		
    <fail message="Could not locate Firefox.  Please specify a browser with
    -Dbrowser=&lt;path-to-browser&gt;"
        unless="browser"/>
    <fail message="The release candidate number is not set.  Specify -Drc=&lt;rc number (e.g. 1, 2, 3, etc)&gt;"
    unless="rc"/>
        	
	<target name="install-rat" depends="install-rat.jar,install-rat.tasks.jar" />
	<target name="install-rat.jar" unless="apache.rat.found">
		<get src="${apache.rat.url}/${apache.rat.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.jar}" />
	</target>
	<target name="install-rat.tasks.jar" unless="apache.rat.tasks.found">
		<get src="${apache.rat.tasks.url}/${apache.rat.tasks.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}" />
	</target>
	
    <target name="rat-taskdef" description="Rat taskdef">
        <typedef resource="org/apache/rat/anttasks/antlib.xml"
        uri="antlib:org.apache.rat.anttasks"
        classpathref="anttask.classpath"/>
    </target>

    <target name="main" depends="install-rat" description="Perform required release approval steps">
		<antcall target="check-new-version" />
		<exec executable="${git}" dir="${basedir}/.." failonerror="true" >
			<arg value="pull" />
			<arg value="--rebase" />
		</exec>
		<ant antfile="build.xml" target="release" />
        <exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="true" >
            <arg value="up" />
        </exec>
        <available file="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries"
                type="dir"
                property="svn.dir.found"/>
		<mkdir dir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" />
		<copy todir="${dist.dev}/flex/installer/${release.version}/rc${rc}" >
			<fileset dir="${basedir}/release" >
				<include name="apache-flex-sdk-installer-${release.version}-src*" />
			</fileset>
		</copy>
		<copy todir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" >
			<fileset dir="${basedir}/release" >
				<include name="apache-flex-sdk-installer-${release.version}-*bin*" />
			</fileset>
		</copy>
		<copy file="${basedir}/README" tofile="${dist.dev}/flex/installer/${release.version}/rc${rc}/READme" />
		<copy file="${basedir}/ApproveInstaller.xml" tofile="${dist.dev}/flex/installer/${release.version}/rc${rc}/ApproveInstaller.xml" />
        <antcall target="svnadd" />
		<exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="true" >
			<arg value="commit" />
			<arg value="-m" />
			<arg value="rc${rc} of Apache Flex Installer ${release.version}" />
		</exec>
        <antcall target="gittags" />
        <antcall target="mail" />
    </target>

    <target name="svnaddfolder" unless="svn.dir.found">
        <exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="true" >
            <arg value="add" />
            <arg value="${dist.dev}/flex/installer/${release.version}/rc${rc}" />
        </exec>
    </target>
    <target name="svnadddmg" if="svn.dir.found">
        <exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="false" >
            <arg value="add" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-bin.dmg" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-bin.dmg.asc" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-bin.dmg.sha512" />
        </exec>
    </target>
    <target name="svnaddexe" if="svn.dir.found">
        <exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="false" >
            <arg value="add" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-bin.exe" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-bin.exe.asc" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-bin.exe.sha512" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-64bit-bin.zip" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-64bit-bin.zip.asc" />
            <arg value="${release.version}/rc${rc}/binaries/apache-flex-sdk-installer-${release.version}-64bit-bin.zip.sha512" />
        </exec>
    </target>
    <target name="svnadd">
        <antcall target="svnaddfolder" />
        <antcall target="svnadddmg" />
        <antcall target="svnaddexe" />
    </target>

    <target name="gittags">
		<exec executable="${git}" dir="${basedir}/.." failonerror="true" >
			<arg value="tag" />
			<arg value="-a" />
			<arg value="apache-flex-sdk-installer-${release.version}-rc${rc}" />
			<arg value="-m" />
			<arg value="&quot;rc${rc} of apache-flex-sdk-installer-${release.version}&quot;" />
		</exec>
		<exec executable="${git}" dir="${basedir}/.." failonerror="true" >
			<arg value="push" />
			<arg value="--tags" />
		</exec>
    </target>

    <target name="commit-and-mail" >
        <exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="true" >
            <arg value="commit" />
            <arg value="-m" />
            <arg value="rc${rc} of Apache Flex Installer ${release.version}" />
        </exec>
        <exec executable="${git}" dir="${basedir}/.." failonerror="true" >
            <arg value="tag" />
            <arg value="-a" />
            <arg value="apache-flex-sdk-installer-${release.version}-rc${rc}" />
            <arg value="-m" />
            <arg value="&quot;rc${rc} of apache-flex-sdk-installer-${release.version}&quot;" />
        </exec>
        <exec executable="${git}" dir="${basedir}/.." failonerror="true" >
            <arg value="push" />
            <arg value="--tags" />
        </exec>
        <antcall target="mail" />
    </target>
    
	<target name="check-new-version" description="check if svn folder needs to be added" >
		<condition property="version.folder" value="${dist.dev}/flex/installer/${release.version}" >
			<not>
				<available file="${dist.dev}/flex/installer/${release.version}" />
			</not>
		</condition>
		<antcall target="add-version-folder" />
	</target>
    
	<target name="add-version-folder" description="adds svn folder if needed" if="version.folder" >
		<mkdir dir="${version.folder}" />
		<exec executable="${svn}" dir="${dist.dev}/flex/installer" failonerror="true" >
			<arg value="add" />
			<arg value="${version.folder}" />
		</exec>
	</target>
	
	<target name="other-platform" unless="skip.other.platform" >
            <antcall target="other-platform-mac" />
            <antcall target="other-platform-win" />
	</target>

	<target name="other-platform-mac" if="isMac" >
		<available file="${basedir}/release/apache-flex-sdk-installer-${release.version}-bin.exe"
		           type="file" property="other.binary" />
		<fail message="${basedir}/release/apache-flex-sdk-installer-${release.version}-bin.exe not found.  The windows version should be built before running this script"
		      unless="other.binary"/>
		<ant antfile="build.xml" target="sign_exe" />
		<mkdir dir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" />
		<copy todir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" >
			<fileset dir="${basedir}/release" >
				<include name="apache-flex-sdk-installer-${release.version}-bin*" />
			</fileset>
		</copy>
	</target>
	<target name="other-platform-win" if="isWindows" >
		<available file="${basedir}/release/apache-flex-sdk-installer-${release.version}-bin.dmg"
		           type="file" property="other.binary" />
		<fail message="${basedir}/release/apache-flex-sdk-installer-${release.version}-bin.dmg not found.  The mac version should be built before running this script"
		      unless="other.binary"/>
		<ant antfile="build.xml" target="sign_dmg" />
		<mkdir dir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" />
		<copy todir="${dist.dev}/flex/installer/${release.version}/rc${rc}/binaries" >
			<fileset dir="${basedir}/release" >
				<include name="apache-flex-sdk-installer-${release.version}-bin*" />
				<include name="apache-flex-sdk-installer-${release.version}-64bit-bin*" />
			</fileset>
		</copy>
	</target>
	
    <target name="mail" >
        <!-- try to set line breaks before the vertical line            | -->
        <echo file="${basedir}/discussthread.properties">discuss.thread.body=This is the discussion thread.\n\
\n\
Changes in this RC include:\n\
\n\
\n\
Thanks,\n\
${my.name}
</echo>
        <replace file="${basedir}/discussthread.properties">
            <replacefilter token=" " value="%20" />
            <replacefilter token="\n" value="${CRLF}" />
        </replace>
        <property file="${basedir}/discussthread.properties" />

        <!-- try to set line breaks before the vertical line            | -->
        <echo file="${basedir}/votethread.properties">vote.thread.body=Hi,\n\
\n\
Please vote to approve Apache Flex SDK Installer version ${release.version} to be \n\
released.\n\
\n\
The source distributions for Windows and Mac are available here:\n\
https://dist.apache.org/repos/dist/dev/flex/installer/${release.version}/rc${rc}/\n\
\n\
The binary distributions as a convenience for the respective platforms,\n\
are available here:\n\
https://dist.apache.org/repos/dist/dev/flex/installer/${release.version}/rc${rc}/binaries\n\
\n\
As agreed, there are no Linux binaries for this version.\n\
\n\
Before voting  please review the sections:\n\
What are the ASF requirements on approving a release? at\n\
http://www.apache.org/dev/ and approving a release  at\n\
http://www.apache.org/dev/release.html#approving-a-release\n\
\n\
For your convenience, there is an Ant script in the RC folder that\n\
automates the checks a voter should perform on the RC.\n\
It will:\n\
  - download the default source package for your OS (use -Dpackage.suffix to override)\n\
  - run md5 and gpg checks (this assumes you have gpg installed in your path)\n\
  - uncompress the source package\n\
  - install and run rat\n\
  - display the rat report and ask you to verify\n\
  - display the rat report without the AL files and ask you to verify the non-AL files\n\
  - display the README and ask you to verify\n\
  - display the RELEASE_NOTES and ask you to verify\n\
  - display the NOTICE and ask you to verify\n\
  - display the LICENSE and ask you to verify\n\
  - run the build and any tests run by the build.\n\
\n\
\n\
You should be able to go away for a while during the build. When it is\n\
finished, it will display information to be copied into the vote thread.\n\
You are not required to use this script, and more testing of the packages\n\
and build results are always encouraged.\n\
\n\
\n\
To use this script (assuming you have Ant installed), it should be as\n\
simple as:\n\
- Create an empty folder\n\
- Download ApproveInstaller.xml into that folder from:\n\
\n\
https://dist.apache.org/repos/dist/dev/flex/installer/${release.version}/rc${rc}/ApproveInstaller.xml\n\
\n\
- Run: ant -e -f ApproveInstaller.xml -Drelease.version=${release.version} -Drc=${rc}\n\
\n\
\n\
Vote\n\
[ ] +1 Approve the release\n\
[ ] -1 Veto the release (please provide specific comments)\n\
\n\
This vote will be open for at least 72 hours.\n\
\n\
Thanks,\n\
${my.name}
</echo>
        <replace file="${basedir}/votethread.properties">
            <replacefilter token=" " value="%20" />
            <replacefilter token="\n" value="${CRLF}" />
        </replace>
        <property file="${basedir}/votethread.properties" />
        <echo file="${basedir}/votethread.html">&lt;html&gt;&lt;body&gt;&lt;a href=&quot;mailto:dev@flex.apache.org?subject=[DISCUSS]%20Discuss%20Release%20Apache%20Flex%20SDK%20Installer%20${release.version}%20RC${rc}&amp;body=${discuss.thread.body}&quot;&gt;Click here to review discuss thread&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;mailto:dev@flex.apache.org?subject=[VOTE]%20Release%20Apache%20Flex%20SDK%20Installer%20${release.version}%20RC${rc}&amp;body=${vote.thread.body}&quot;&gt;Click here to review vote thread&lt;/a&gt;&lt;/body&gt;&lt;/html&gt;</echo>
        <makeurl file="${basedir}/votethread.html" property="vote.thread.url" />
        <exec executable="${browser}">
            <arg value="${vote.thread.url}" />
        </exec>
		<delete file="${basedir}/votethread.properties" />
		<delete file="${basedir}/votethread.html" />
		<delete file="${basedir}/discussthread.properties" />
    </target>

	<target name="release" >
		<available file="${svn.dist.release}"
			type="dir" 
			property="dist.release" value="${svn.dist.release}" />
    
		<fail message="The svn.dist.release property is not set to the working copy for https://dist.apache.org/repos/dist/release."
			unless="dist.release"/>
				
		<exec executable="${svn}" dir="${dist.release}/flex" failonerror="true" >
			<arg value="update" />
		</exec>
		<mkdir dir="${dist.release}/flex/installer/${release.version}" />
		<mkdir dir="${dist.release}/flex/installer/${release.version}/binaries" />
		<copy todir="${dist.release}/flex/installer/${release.version}/binaries" >
			<fileset dir="${dist.dev}/flex/installer/rc${rc}/binaries" >
				<include name="apache-flex-sdk-installer-${release.version}-bin*" />
			</fileset>
		</copy>
		<copy todir="${dist.release}/flex/installer/${release.version}" >
			<fileset dir="${dist.dev}/flex/installer/rc${rc}" >
				<include name="READme" />
				<include name="apache-flex-sdk-installer-${release.version}-src*" />
			</fileset>
		</copy>
		<exec executable="${svn}" dir="${dist.release}/flex/installer" failonerror="true" >
			<arg value="add" />
			<arg value="${release.version}" />
		</exec>
		<exec executable="${svn}" dir="${dist.release}/flex/installer" failonerror="true" >
			<arg value="commit" />
			<arg value="--username" />
			<arg value="${apache.username}" />
			<arg value="--password" />
			<arg value="${apache.password}" />
			<arg value="-m" />
			<arg value="Apache Flex SDK Installer ${release.version}" />
		</exec>
		<exec executable="${git}" dir="${basedir}" failonerror="true" >
			<arg value="tag" />
			<arg value="-a" />
			<arg value="apache-flex-sdk-installer-${release.version}" />
			<arg value="-m" />
			<arg value="&quot;Official release of apache-flex-sdk-installer-${release.version}&quot;" />
		</exec>
		<exec executable="${git}" dir="${basedir}" failonerror="true" >
			<arg value="push" />
			<arg value="--tags" />
		</exec>
		<echo>Wait at least 24 hours before updating sdk-installer-config-4.0.xml and installer page on website</echo>
	</target>
	
</project>
