<?xml version="1.0" encoding="UTF-8"?>
<!--
 ******************************************************************************
 * Copyright (c) 2008, 2010 VMware Inc.
 * 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:
 *   VMware Inc. - initial contribution
 ******************************************************************************
-->

<project name="publish-multi-bundle" xmlns:ivy="antlib:org.apache.ivy.ant">

    <import file="common.xml"/>

<!-- Main targets -->

    <target name="publish-ivy" description="Publishes all ivy artifacts to remote Eclipse Ivy repositories">
        <all-bundles target="publish-ivy"/>
    </target>
    
    <target name="publish-mirrored-ivy" description="Publishes all ivy artifacts to remote Eclipse Ivy repositories">
        <all-bundles target="publish-mirrored-ivy"/>
    </target>

    <target name="publish-maven" description="Publishes all maven artifacts to remote Eclipse Maven repositories">
        <all-bundles target="publish-maven"/>
    </target>

    <target name="install-maven">
        <all-bundles target="install-maven"/>
    </target>
    
    <target name="p2.extract-publisher" description="Extracts Equinox+P2 needed for P2 Publishing">
        <delete quiet="true" file="${p2.publishing.dir}"/>
        <mkdir dir="${p2.publishing.dir}"/>
        <get src="http://www.eclipse.org/downloads/download.php?file=/equinox/drops/R-3.6.1-201009090800/equinox-p2-agent-3.6.1-linux.tar.gz&amp;r=1"
             dest="${p2.publishing.dir}/p2agent.tar.gz"
             usetimestamp="true"/>
        
        <gunzip src="${p2.publishing.dir}/p2agent.tar.gz" dest="${p2.publishing.dir}"/>
        <untar src="${p2.publishing.dir}/p2agent.tar" dest="${p2.publishing.dir}"/>
        
        <move tofile="${p2.launcher.jar}">
            <fileset dir="${p2.publishing.dir}/plugins">
              <include name="org.eclipse.equinox.launcher*.jar"/>
            </fileset>
        </move>
    </target>
    
    <target name="publish-package-build">
        <fail message="The 'package.file' property must be set on this project.">
            <condition>
                <not>
                    <isset property="package.file"/>
                </not>
            </condition>
        </fail>
        <fail message="The 'project.name' property must be set on this project.">
            <condition>
                <not>
                    <isset property="project.name"/>
                </not>
            </condition>
        </fail>
        
        <checksum file="${package.file}" algorithm="sha1"/>
        <sshexec host="build.eclipse.org" 
                username="${eclipse.buildId}" 
                keyfile="${key.file}" 
                passphrase="${passphrase}"
                command="mkdir -pv /opt/public/rt/virgo/zips/${adjusted.release.type}/${project.key}/${bundle.version}"/>
        <scp localFile="${package.file}"
                todir="${eclipse.buildId}@build.eclipse.org:/opt/public/rt/virgo/zips/${adjusted.release.type}/${project.key}/${bundle.version}" 
                keyfile="${key.file}"
                passphrase="${passphrase}" />
        <scp localFile="${package.file}.sha1"
                todir="${eclipse.buildId}@build.eclipse.org:/opt/public/rt/virgo/zips/${adjusted.release.type}/${project.key}/${bundle.version}" 
                keyfile="${key.file}"
                passphrase="${passphrase}" />
    </target>
    
    <target name="publish-package-download">
        <fail message="The 'package.file' property must be set on this project.">
            <condition>
                <not>
                    <isset property="package.file"/>
                </not>
            </condition>
        </fail>
        <fail message="The 'project.name' property must be set on this project.">
            <condition>
                <not>
                    <isset property="project.name"/>
                </not>
            </condition>
        </fail>
        <checksum file="${package.file}" algorithm="sha1"/>
        <sshexec host="build.eclipse.org" 
                username="${eclipse.committerId}" 
                keyfile="${key.file}" 
                passphrase="${passphrase}"
                command="mkdir -pv /home/data/httpd/download.eclipse.org/virgo/${adjusted.release.type}/${project.key}/${bundle.version}"/>
        <scp localFile="${package.file}"
                todir="${eclipse.committerId}@build.eclipse.org:/home/data/httpd/download.eclipse.org/virgo/${adjusted.release.type}/${project.key}/${bundle.version}" 
                keyfile="${key.file}"
                passphrase="${passphrase}" />
        <scp localFile="${package.file}.sha1"
                todir="${eclipse.committerId}@build.eclipse.org:/home/data/httpd/download.eclipse.org/virgo/${adjusted.release.type}/${project.key}/${bundle.version}" 
                keyfile="${key.file}"
                passphrase="${passphrase}" />
    </target>
    
</project>
