<!--
 *************************************************************************
 * Copyright (c) 2004, 2014 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *  Actuate Corporation - initial implementation
 *  
 *************************************************************************
-->

<project default="main">

        <property name="username" value="xgu"/>
        <property name="password" value="xx"/>
        <property name="hostname" value="build.eclipse.org"/>
        <property name="eclipse_dtp_path" value="~/downloads/datatools/downloads/drops/N_DTP_1.12.0"/>
        <property name="buildDir" value="/home/adb/releng.dtp.1120/org.eclipse.datatools.releng.builder"/>
        <property name="local_upload_path" value="${buildDir}/uploadScripts/workdir"/>
        <property name="buildVersionLog" value="build.1.12.0.log"/>
        <property name="up_status" value="start"/>

        <target name="main">
                      
          <antcall target="copytolocal"/>
          <antcall target="copytoeclipse"/>
          
        </target>        


        <target name="copytolocal">
           <tstamp>
               <format property="dtplog.upload.start" pattern="yyyy-MM-dd HH:mm:ss"/>
           </tstamp>
           <echo message="Start to dtp log upload at ${dtplog.upload.start}"/>
           
           <copy file="${buildDir}/adb.log" 
                 tofile="${local_upload_path}/${buildVersionLog}" overwrite="true"/>
        </target>

        <target name="copytoeclipse">   
           <echo file="${local_upload_path}/${buildVersionLog}" append="true">
              ${up_status} DTP Upload... 
           </echo>

           <scp remoteTofile="${username}:${password}@${hostname}:${eclipse_dtp_path}/build.log" trust="true"
                file="${local_upload_path}/${buildVersionLog}"/>
           <sshexec host="${hostname}" username="${username}" password="${password}" trust="true"
			failonerror="false" 
                    command="chmod g+w ${eclipse_dtp_path}/build.log" />
        </target>

</project>
