<?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="ApproveApacheFlexBlazeDS" 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>
    <condition property="package.suffix" value="zip">
        <os family="windows" />
    </condition>
	<property name="package.suffix" value="tar.gz" />
	
	<property name="rat.report" value="${basedir}/rat-report.txt"/>
	<property name="apache.rat.jar" value="apache-rat-0.8.jar" />
	<property name="apache.rat.tasks.jar" value="apache-rat-tasks-0.8.jar" />
	<property name="apache.rat.url" value="http://people.apache.org/~aharui/rat" />
	
	<property name="mac.text.display" value="cat" />
	<property name="win.text.display" value="type" />
	<property name="linux.text.display" value="cat" />
    
    <property file="${basedir}/approveblazeds.properties"/>
    <property environment="env"/>

    <property name="build.target" value="main" />
    
	<condition property="do.copy.downloads" >
		<isset property="download.cache.dir" /> 
	</condition>
	
    <fail message="The ANT_HOME environment variable is not set."
        unless="env.ANT_HOME"/>
		
	<available file="${env.FLEX_HOME}" 
		type="dir" 
		property="FLEX_HOME" value="${env.FLEX_HOME}" />

    <fail message="The FLEX_HOME property is not set in environment or command-line."
        unless="FLEX_HOME"/>
				
	<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.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="The release version is not set.  Specify -Drelease.version=&lt;release version (e.g. 3.1, 3.2, etc)&gt;"
    unless="release.version"/>
       
    <fail message="The folder number is not set.  Specify -Dfolder.number=&lt;folder number (e.g. 1001, 1002, etc)&gt;"
       unless="folder.number"/>
       
    <property name="package.url.base" value="://repository.apache.org/content/repositories/orgapacheflex-${folder.number}/org/apache/flex/blazeds" />
	<property name="package.url.path" value="https${package.url.base}/blazeds/${release.version}" />
	<property name="package.url.name" value="blazeds-${release.version}-source-release" />
	
    <condition property="zip.compressed">
        <equals arg1="zip" arg2="${package.suffix}" />
    </condition>
    
	<target name="display-text-mac" if="isMac">
		<echo>========================= Begin ${file} ==============================</echo>
		<exec executable="${mac.text.display}" >
			<arg value="${file}" /> 
		</exec>
		<echo>========================= End ${file} ==============================</echo>
	</target>
	<target name="display-text-win" if="isWindows">
		<pathconvert targetos="windows" property="winfile">
			<path path="${file}" />
		</pathconvert>
		<echo>========================= Begin ${winfile} ==============================</echo>
		<exec executable="cmd.exe" >
			<arg value="/c" />
			<arg value="${win.text.display}" />
			<arg value="${winfile}" /> 
		</exec>		
		<echo>========================= End ${winfile} ==============================</echo>
	</target>
	<target name="display-text-linux" if="isLinux">
		<echo>========================= Begin ${file} ==============================</echo>
		<exec executable="${linux.text.display}" >
			<arg value="${file}" /> 
		</exec>
		<echo>========================= End ${file} ==============================</echo>
	</target>
	
	<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.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,download,check-sigs,uncompress,rat-check,check-notices,binaries,build,approve" description="Perform required release approval steps">
    </target>
    
    <target name="main-no-download" depends="install-rat,check-sigs,uncompress,rat-check,check-notices,binaries,build,approve" description="Perform required release approval steps">
    </target>
	
    <target name="test" >
		<echo>${rat.report}.bin.txt</echo>
		<replaceregexp file="${rat.report}.bin.txt" match="..AL.*" replace="" byline="true"/>
    </target>
	
	<target name="display-text" >
		<antcall target="display-text-mac" />
		<antcall target="display-text-win" />
		<antcall target="display-text-linux" />
	</target>

	<target name="display-text-test" >
		<antcall target="display-text" >
			<param name="file" value="${basedir}/rat-report.txt" />
		</antcall>
	</target>
	
    <target name="download" depends="download-asc" description="download the release package">
        <get src="${package.url.path}/${package.url.name}.${package.suffix}"
            dest="${basedir}/${package.url.name}.${package.suffix}" />
        <get src="${package.url.path}/${package.url.name}.${package.suffix}.md5"
            dest="${basedir}/${package.url.name}.${package.suffix}.md5" />
    </target>
    
    <target name="download-asc" unless="no.asc" description="download the release package">
        <get src="${package.url.path}/${package.url.name}.${package.suffix}.asc"
        dest="${basedir}/${package.url.name}.${package.suffix}.asc" />
    </target>

    <target name="check-md5" description="check md5">
        <echo message="Checking MD5..."/>
		<replace file="${basedir}/${package.url.name}.${package.suffix}.md5"
			token=" " />
		<checksum file="${basedir}/${package.url.name}.${package.suffix}" algorithm="md5" verifyproperty="md5.ok" />
        <condition property="MD5Invalid">
			<not>
				<equals arg1="${md5.ok}" arg2="true" />
			</not>
        </condition>
        <fail message="MD5 checksum did not match" if="MD5Invalid" />
    </target>

    <target name="check-sigs" depends="check-md5" unless="no.asc" description="check md5 and gpg sigs">
		<exec executable="gpg" failonerror="true">
			<arg value="--verify" />
			<arg value="${basedir}/${package.url.name}.${package.suffix}.asc" />
			<arg value="${basedir}/${package.url.name}.${package.suffix}" />
		</exec>
    </target>


    <target name="uncompress" depends="pre-clean, untar-file, unzip-file" />

    <target name="pre-clean" description="remove old uncompressed package" >
		<delete dir="${basedir}/${package.url.name}" failonerror="false" />
	</target>
	
    <target name="untar-file" unless="zip.compressed" description="Untars zipFile">
        <untar src="${basedir}/${package.url.name}.${package.suffix}"
                dest="${basedir}/${package.url.name}" compression="gzip"/>
    </target>

    <target name="unzip-file" if="zip.compressed" description="Unzips zipFile">
        <unzip src="${basedir}/${package.url.name}.${package.suffix}"
                dest="${basedir}/${package.url.name}"/>
    </target>
    
    <target name="binaries" if="isMac">
        <get src="http${package.url.base}/"
        dest="${basedir}/folderlist.txt" />
        <!-- remove everything up to 'Parent Directory' -->
        <replaceregexp file="${basedir}/folderlist.txt" match=".*Parent Directory" replace=""
            flags="s" byline="false"/>
        <!-- remove everything except the text after an href -->
        <replaceregexp file="${basedir}/folderlist.txt" match="(.*)href=(.*)&gt;(.*)&lt;/a" replace="\3"
                flags="g" byline="false"/>
        <!-- remove everything inside single line td's -->
        <replaceregexp file="${basedir}/folderlist.txt" match="&lt;td.*&lt;/td&gt;" replace=""
                flags="g" byline="false"/>
        <!-- remove everything all other html tags -->
        <replaceregexp file="${basedir}/folderlist.txt" match="&lt;.*&gt;" replace=""
                flags="g" byline="false"/>
        <!-- remove everything up to &nbsp; -->
        <replaceregexp file="${basedir}/folderlist.txt" match="&amp;nbsp;" replace=""
                flags="g" byline="false"/>
        <!-- remove all whitespace -->
        <replaceregexp file="${basedir}/folderlist.txt" match="\s" replace=""
                flags="g" byline="false"/>
        <!-- remove blazeds folder -->
        <replaceregexp file="${basedir}/folderlist.txt" match="blazeds/&gt;" replace=""
                flags="g" byline="false"/>
        <!-- remove opt folder -->
        <replaceregexp file="${basedir}/folderlist.txt" match="flex-messaging-opt/&gt;" replace=""
                flags="g" byline="false"/>
        <!-- replace trailing /> with commas -->
        <replaceregexp file="${basedir}/folderlist.txt" match="/&gt;" replace=","
                flags="g" byline="false"/>
        <!-- remove trailing comma -->
        <replaceregexp file="${basedir}/folderlist.txt" match=",$" replace=""
                flags="m" byline="false"/>
        
        <antcall target="examine-jars" />
    </target>

    <!-- how to do tar and sort on Windows? -->
    <target name="examine-jars" if="isMac">
        <!-- comma delimited list, no spaces, not one file per line -->
        <copy file="folderlist.txt" tofile="loop.txt" />
        <ant antfile="ApproveBlazeDS.xml" target="loopOnce" inheritAll="false" />
    </target>
    <target name="loopOnce" >
        <!-- make a copy of the list so we can munge it to
         get the first item in the list -->
        <delete file="loop1.txt" />
        <copy file="loop.txt" tofile="loop1.txt" />
        <loadfile srcFile="loop.txt" property="checkiflast" />
        <condition property="islast" value="true">
            <not>
                <contains string="${checkiflast}" substring="," />
            </not>
        </condition>
        <antcall target="notlast" />
        <antcall target="lastone" />
    </target>
    <target name="notlast" unless="islast">
        <loadfile srcFile="loop1.txt" property="echoFile" />
        <replaceregexp file="loop1.txt" match="^(.*),(.*)" replace="\2" />
        <loadfile srcFile="loop1.txt" property="thisFile" />
        <antcall target="jar-check" />
        <replaceregexp file="loop.txt" match="^(.*),(.*)" replace="\1" />
        <ant antfile="ApproveBlazeDS.xml" target="loopOnce" inheritAll="false"/>
    </target>
    <target name="lastone" if="islast">
        <loadfile srcFile="loop1.txt" property="thisFile" />
        <antcall target="jar-check" />
        <delete file="loop.txt" />
        <delete file="loop1.txt" />
    </target>

    <target name="jar-check" >
        <delete dir="${basedir}/jar" failonerror="false" />
        <delete dir="${basedir}/${thisFile}.jar" failonerror="false" />
        <mkdir dir="${basedir}/jar" />
        <get src="https${package.url.base}/${thisFile}/${release.version}/${thisFile}-${release.version}.jar"
            dest="${basedir}/${thisFile}.jar" />
        <get src="https${package.url.base}/${thisFile}/${release.version}/${thisFile}-${release.version}.jar.asc"
            dest="${basedir}/${thisFile}.jar.asc" />
        <get src="https${package.url.base}/${thisFile}/${release.version}/${thisFile}-${release.version}.jar.md5"
            dest="${basedir}/${thisFile}.jar.md5" />
        <echo message="Checking MD5..."/>
        <replace file="${basedir}/${thisFile}.jar.md5"
            token=" " />
        <checksum file="${basedir}/${thisFile}.jar" algorithm="md5" verifyproperty="jar.md5.ok" />
        <condition property="JARMD5Invalid">
            <not>
                <equals arg1="${jar.md5.ok}" arg2="true" />
            </not>
        </condition>
        <fail message="MD5 checksum did not match" if="JARMD5Invalid" />
        <exec executable="gpg" failonerror="true">
            <arg value="--verify" />
            <arg value="${basedir}/${thisFile}.jar.asc" />
            <arg value="${basedir}/${thisFile}.jar" />
        </exec>
        <unjar src="${basedir}/${thisFile}.jar" dest="${basedir}/jar" />
        <exec executable="tar" output="${basedir}/jarclasses.txt">
            <arg value="tf" />
            <arg value="${basedir}/${thisFile}.jar" />
        </exec>
        <replaceregexp file="${basedir}/jarclasses.txt" match="(.*)/(.*)" replace="\1" flags="m" byline="true"/>
        <exec executable="sort" output="${basedir}/jarpaths.txt">
            <arg value="-u" />
            <arg value="${basedir}/jarclasses.txt" />
        </exec>
        <antcall target="display-text" >
            <param name="file" value="${basedir}/jarpaths.txt" />
        </antcall>
        <input
        message="Above is the list of folders in this ${thisFile}.&#xA;Folder names can sometimes indicate presence of third-party content that needs to be in LICENSE and/or NOTICE files.&#xA;Press the Enter key to see the LICENSE for this jar."/>
        
        <fail message="LICENSE not in ${basedir}/${thisFile}.jar">
            <condition>
                <not>
                    <available file="${basedir}/jar/META-INF/LICENSE" />
                </not>
            </condition>
        </fail>
        <fail message="NOTICE not in ${basedir}/${thisFile}.jar">
            <condition>
                <not>
                    <available file="${basedir}/jar/META-INF/NOTICE" />
                </not>
            </condition>
        </fail>
        <antcall target="display-text" >
            <param name="file" value="${basedir}/jar/META-INF/LICENSE" />
        </antcall>
        <input
        message="Check the LICENSE for the Apache License and third-party licenses. Is it ok?"
        validargs="y,n"
        defaultvalue="y"
        addproperty="jar.license.ok"/>
        <fail message="LICENSE for ${basedir}/${thisFile}.jar not correct">
            <condition>
                <not>
                    <equals arg1="${jar.license.ok}" arg2="y" />
                </not>
            </condition>
        </fail>
        <antcall target="display-text" >
            <param name="file" value="${basedir}/jar/META-INF/NOTICE" />
        </antcall>
        <input
        message="Check the NOTICE for required notices from third-parties. Is it ok?"
        validargs="y,n"
        defaultvalue="y"
        addproperty="jar.notice.ok"/>
        <fail message="NOTICE for ${basedir}/${thisFile}.jar not correct">
            <condition>
                <not>
                    <equals arg1="${jar.notice.ok}" arg2="y" />
                </not>
            </condition>
        </fail>
        
    </target>

    <target name="rat-check" >

        <echo message="Checking files at ${basedir}/${package.url.name}, report is ${rat.report}"/>

        <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
            reportFile="${rat.report}">
            <fileset dir="${basedir}/${package.url.name}">
                <!-- exclude media (png, gif, jpg, mp3, flv) -->
                <exclude name="**/*.png"/>
                <exclude name="**/*.gif"/>
                <exclude name="**/*.jpg"/>
                <exclude name="**/*.mp3"/>
                <exclude name="**/*.flv"/>
                <exclude name="installer/build.number"/>
                <exclude name="**/swfobject.js"/>
                <exclude name="**/DoNotDeleteUntilFile.txt" />
                <exclude name="CONTRIBUTORS"/>
                <exclude name="CONTRIBUTING"/>
            </fileset>
        </rat:report>
		<antcall target="display-text" >
            <param name="file" value="${rat.report}" />
        </antcall>
        <input
			message="Check that there are no unknown or unapproved licenses or archives. Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="rat.license.ok"/>
		<echo>filtering out AL files to make it easier to see binary files</echo>
		<copy file="${rat.report}" tofile="${rat.report}.bin.txt" />
        <replaceregexp file="${rat.report}.bin.txt" match="..AL.*" replace="__AL" byline="true"/>
        <replaceregexp file="${rat.report}.bin.txt" flags="gs" match="__AL." replace="" byline="false"/>
		<antcall target="display-text" >
            <param name="file" value="${rat.report}.bin.txt" />
        </antcall>
        <input
			message="Check that there are no unexpected binaries.  Is it ok?"
            validargs="y,n"
        defaultvalue="n"
        addproperty="rat.binaries.ok"/>
    </target>

    <target name="check-notices" description="open each notice file for review, grep for a few things" >
        <fail message="README not in package">
			<condition>
	            <not>
    	            <available file="${basedir}/${package.url.name}/blazeds-${release.version}/README" />
        	    </not>
			</condition>
        </fail>
        <fail message="RELEASE_NOTES not in package">
			<condition>
				<not>
					<available file="${basedir}/${package.url.name}/blazeds-${release.version}/RELEASE_NOTES" />
				</not>
			</condition>
        </fail>
        <fail message="NOTICE not in package">
			<condition>
				<not>
					<available file="${basedir}/${package.url.name}/blazeds-${release.version}/NOTICE" />
				</not>
			</condition>
        </fail>
        <fail message="LICENSE not in package">
			<condition>
				<not>
					<available file="${basedir}/${package.url.name}/blazeds-${release.version}/LICENSE" />
				</not>
			</condition>
        </fail>
		<antcall target="display-text" >
            <param name="file" value="${basedir}/${package.url.name}/blazeds-${release.version}/README" />
        </antcall>
		<input
			message="Check the README for version numbers, spelling, grammar, accuracy.  Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="readme.ok"/>
		
		<antcall target="display-text" >
            <param name="file" value="${basedir}/${package.url.name}/blazeds-${release.version}/RELEASE_NOTES" />
        </antcall>
		<input
			message="Check the RELEASE_NOTES for copyright years, spelling, grammar, accuracy. Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="releasenotes.ok"/>
		
		<antcall target="display-text" >
            <param name="file" value="${basedir}/${package.url.name}/blazeds-${release.version}/NOTICE" />
        </antcall>
		<input
			message="Check the NOTICE for required notices from third-parties. Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="notice.ok"/>

		<antcall target="display-text" >
            <param name="file" value="${basedir}/${package.url.name}/blazeds-${release.version}/LICENSE" />
        </antcall>
		<input
			message="Check the LICENSE for the Apache License and third-party licenses. Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="license.ok"/>
    </target>

    <target name="build" depends="copy.downloads">
		<input
			message="The final step is to run the build and any tests the build script runs.  This can take several minutes.  Press y to start the build."
            validargs="y"
        defaultvalue="y" />
        <exec dir="${basedir}/${package.url.name}/blazeds-${release.version}" executable="mvn" >
            <arg value="install" />
        </exec>
    </target>

    <target name="copy.downloads" if="${do.copy.downloads}" description="instead of actually downloading all of the dependencies, you can save lots of time by just copying from some other folder in some other SDK.">
		<echo>Copying downloads</echo>
        <copy todir="${basedir}/${package.url.name}/in" >
			<fileset dir="${download.cache.dir}" />
		</copy>
    </target>
    	
	<target name="approve" >
		<condition property="vote" value="+1">
			<and>
				<equals arg1="${rat.license.ok}" arg2="y" />
				<equals arg1="${rat.binaries.ok}" arg2="y" />
				<equals arg1="${readme.ok}" arg2="y" />
				<equals arg1="${releasenotes.ok}" arg2="y" />
				<equals arg1="${notice.ok}" arg2="y" />
				<equals arg1="${license.ok}" arg2="y" />
			</and>
		</condition>
		<property name="vote" value="-1" />
		<echo>
${vote}
Package ${package.url.path}/${package.url.name}.${package.suffix}
Java ${ant.java.version}
OS: ${os.name} ${os.arch} ${os.version}
Source kit signatures match: y
Source kit builds: y
README is ok: ${readme.ok}
RELEASE_NOTES is ok: ${releasenotes.ok}
NOTICE is ok: ${notice.ok}
LICENSE is ok: ${license.ok}
No unapproved licenses or files in jars: y
No unapproved licenses or archives: ${rat.license.ok}
No unapproved binaries: ${rat.binaries.ok}
		</echo>
		<fail>
			<condition>
	            <equals arg1="-1" arg2="${vote}"/>
			</condition>
		</fail>
		<antcall target="no-asc" />
	</target>

	<target name="no-asc" if="no.asc" >
		<echo>PGP signature not checked</echo>
	</target>
</project>
