awips2/edexOsgi/build.edex/deploy-common/deploy-setup.xml
2022-05-05 12:34:50 -05:00

181 lines
9.2 KiB
XML

<project>
<target name="setup">
<tstamp>
<format property="TIMESTAMP_START" pattern="d-MMM-yyyy h:mm:ss a" locale="en,US" />
</tstamp>
<echo message="Deploy Started: ${TIMESTAMP_START}" />
<echo message="BASEDIR:${basedir}" />
<dirname property="antfile.dir" file="${ant.file}" />
<echo message="ANT FILE DIR:${antfile.dir}" />
<dirname property="base.dir" file="${antfile.dir}" />
<echo message="BASE DIR:${base.dir}" />
<dirname property="repo.dir" file="${base.dir}" />
<echo message="REPO DIR:${repo.dir}"/>
<basename property="base.name" file="${base.dir}" />
<echo message="BASE NAME:${base.name}" />
<echo message="BUILD PRODUCT:${build.product}" />
<!-- read the properties -->
<property file="${basedir}/${build.product}/common.properties" />
<property file="${basedir}/${build.product}/developer.properties" />
<condition property="wa.enabled">
<not>
<equals arg1="${wa.to.deploy}" arg2="" />
</not>
</condition>
<if>
<equals arg1="${base.name}" arg2="edexOsgi" />
<then>
<!-- we are in the distributed development environment -->
<echo message="BUILDING: in distributed development environment" />
<dirname property="awips.baseline.directory" file="${base.dir}" />
<dirname property="git.directory" file="${awips.baseline.directory}" />
<echo message="GIT.DIRECTORY:${git.directory}" />
<var name="repository.directories" value="${awips.baseline.directory}" />
<for list="${core.repositories}" param="repo.directory">
<sequential>
<var name="repository.directories" value="${repository.directories},${git.directory}${file.separator}@{repo.directory}" />
</sequential>
</for>
<for list="${optional.repositories}" param="repo.directory">
<sequential>
<if>
<isset property="optional.directories" />
<then>
<var name="optional.directories" value="${optional.directories},${git.directory}${file.separator}@{repo.directory}" />
</then>
<else>
<var name="optional.directories" value="${git.directory}${file.separator}@{repo.directory}" />
</else>
</if>
</sequential>
</for>
<property name="tab" value=" " />
<echo level="info" message=" " />
<echo level="info" message="Deploy checks the following directories for source:" />
<echo level="info" message=" " />
<for list="${repository.directories}" param="repository.directory">
<sequential>
<echo level="info" message="${tab}@{repository.directory}" />
<if>
<not>
<available file="@{repository.directory}" type="dir" />
</not>
<then>
<echo level="error" message="${tab}@{repository.directory} does not exist!" />
<property name="missingDir" value="true" />
</then>
</if>
</sequential>
</for>
<if>
<isset property="missingDir" />
<then>
<echo level="error" message=" " />
<echo level="error" message="Edit core.repositories=${core.repositories} in common.properties, rename source directories or create a symlink!" />
<echo level="error" message=" " />
<fail message="Unable to locate source directories." />
</then>
</if>
<echo level="info" message=" " />
</then>
<else>
<!-- all of the projects are in the workspace or one single directory -->
<echo message="BUILDING: in workspace or flattened directory structure" />
<var name="awips.baseline.directory" value="${base.dir}" />
<var name="repository.directories" value="${base.dir}" />
</else>
</if>
<echo message="AWIPS.BASELINE.DIRECTORY:${awips.baseline.directory}" />
<echo message="REPOSITORY.DIRECTORIES:${repository.directories}" />
<echo message="OPTIONAL.DIRECTORIES:${optional.directories}" />
<!-- construct the list of "basedirectories" -->
<propertyselector property="baseline.variables" delimiter="${path.separator}" match="dir.([0-9][0-9])" select="\1" casesensitive="true" />
<var name="basedirectories" value="${awips.baseline.directory}" />
<var name="optionaldirectories" value="" />
<for list="${baseline.variables}" param="index" delimiter="${path.separator}">
<sequential>
<propertycopy property="variable.name" override="true" from="dir.@{index}" />
<for list="${repository.directories}" param="repo.directory">
<sequential>
<var name="base.directory" value="@{repo.directory}/${variable.name}" />
<if>
<available file="${base.directory}" type="dir" />
<then>
<echo message="BASE.DIRECTORY:${base.directory}" />
<var name="basedirectories" value="${base.directory};${basedirectories}" />
</then>
</if>
</sequential>
</for>
<for list="${optional.directories}" param="repo.directory">
<sequential>
<var name="optional.directory" value="@{repo.directory}/${variable.name}" />
<if>
<available file="${optional.directory}" type="dir" />
<then>
<echo level="info" />
<echo level="info" message="Checking ${optional.directory}" />
<first id="compiled">
<fileset dir="${optional.directory}" includes="**/*.class" />
</first>
<if>
<not>
<equals arg1="${toString:compiled}" arg2="" />
</not>
<then>
<echo level="info" message=" Class file found at ${toString:compiled}" />
<var name="optionaldirectories" value="${optional.directory};${optionaldirectories}" />
<!-- If class file is found, check for directories that contain compiled libraries or features only-->
<for list="${wa.req.dirs}" param="wa.req.dir">
<sequential>
<if>
<available file="@{repo.directory}/@{wa.req.dir}" type="dir" />
<then>
<var name="optionaldirectories" value="@{repo.directory}/@{wa.req.dir};${optionaldirectories}" />
</then>
</if>
</sequential>
</for>
</then>
<else>
<echo message=" No class files found in @{repo.directory}/${variable.name} - skipping." />
</else>
</if>
</then>
</if>
</sequential>
</for>
<!-- Loop through the WA directories, if they exist. -->
<if>
<isset property="wa.enabled" />
<then>
<for list="${wa.to.deploy}" param="wa" delimiter="${path.separator}">
<sequential>
<var name="wa.base.directory" value="@{wa}/${variable.name}" />
<if>
<available file="${wa.base.directory}" type="dir" />
<then>
<var name="basedirectories" value="${wa.base.directory};${basedirectories}" />
</then>
</if>
</sequential>
</for>
</then>
</if>
</sequential>
</for>
</target>
</project>