<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE build-type SYSTEM "../../../project-config.dtd">

<build-type>
  <name>Upload to FTP</name>
  <description />
  <settings>
    <parameters>
      <param name="system.ftp.server" value="" spec="text description='FTP server address' display='normal' label='FTP host:' validationMode='not_empty'" />
      <param name="system.ftp.port" value="21" spec="text display='normal' label='FTP server port:' regexp='|[0-9|]+' validationMessage='Invalid port number' validationMode='regex'" />
      <param name="system.ftp.user" value="" spec="text display='normal' label='Username:' validationMode='any'" />
      <param name="system.ftp.password" value="zxx775d03cbe80d301b" spec="password display='normal' label='Password:'" />
      <param name="system.src.dir" value="" spec="text description='Directory with files for upload (if empty - current directory will be used)' display='normal' label='Source directory:' validationMode='any'" />
      <param name="system.include.pattern" value="**/*" spec="text description='Ant-like include pattern for files in source directory' display='normal' label='Include pattern:' validationMode='not_empty'" />
      <param name="system.exclude.pattern" value="" spec="text description='Ant-like exclude pattern for files in source directory' display='normal' label='Exclude pattern:' validationMode='any'" />
      <param name="system.dest.dir" value="" spec="text description='Directory on FTP server where to put files (if empty - default directory for given username will be used)' display='normal' label='Destination directory:' validationMode='any'" />
      <param name="system.clean.dest.dir" value="false" spec="checkbox checkedValue='true' description='Enable if destination directory must be cleaned before uploading files' display='normal' label='Clean destination directory:' uncheckedValue='false'" />
    </parameters>
    <build-runners>
      <runner id="RUNNER_24" name="" type="Ant">
        <parameters>
          <param name="build-file"><![CDATA[<project name="FTP upload">
<taskdef name="ftp" classname="org.apache.tools.ant.taskdefs.optional.net.FTP"/>

<property name="temp" value="${teamcity.build.tempDir}/ftpTemp"/>
<condition property="dest.dir.set">
  <matches pattern=".+" string="${dest.dir}"/>
</condition>
<condition property="clean.dest.dir.set">
  <matches pattern="true" string="${clean.dest.dir}"/>
</condition>

<target name="prepare-ftp">
<mkdir dir="${temp}"/>
</target>

<target name="put-files" depends="prepare-ftp, clean-remote-dir, create-remote-dir">

<ftp server="${ftp.server}" 
  port="${ftp.port}"
  userid="${ftp.user}"
  password="${ftp.password}"
  remotedir="${dest.dir}"
  verbose="true">

<fileset dir="${src.dir}">
<include name="${include.pattern}"/>
<exclude name="${exclude.pattern}"/>
</fileset>
</ftp>

</target>

<target name="create-remote-dir" if="dest.dir.set">
<ftp action="mkdir"
     server="${ftp.server}"
     port="${ftp.port}"
     userid="${ftp.user}"
     password="${ftp.password}"
     remotedir="${dest.dir}">
</ftp>
</target>

<target name="clean-remote-dir" if="clean.dest.dir.set">
<ftp action="del"
     server="${ftp.server}"
     port="${ftp.port}"
     userid="${ftp.user}"
     password="${ftp.password}"
     remotedir="${dest.dir}">
<fileset>
<include name="**/*"/>
</fileset>
</ftp>


</target>


</project>]]></param>
          <param name="build-file-path" value="build.xml" />
          <param name="target" value="put-files" />
          <param name="runnerArgs" value="-lib &quot;%teamcity.tool.ant-net-tasks%&quot;" />
          <param name="teamcity.coverage.emma.include.source" value="true" />
          <param name="teamcity.coverage.emma.instr.parameters" value="-ix -*Test*" />
          <param name="teamcity.coverage.idea.includePatterns" value="*" />
          <param name="teamcity.step.mode" value="default" />
          <param name="use-custom-build-file" value="true" />
        </parameters>
      </runner>
    </build-runners>
    <vcs-settings checkout-mode="ON_SERVER" labeling-type="NONE" labeling-pattern="build-%system.build.number%" />
    <requirements />
    <build-triggers />
    <cleanup />
  </settings>
</build-type>

