<?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.
-->
<!--
This is the publishing file for ForrestBot.

Running "ant -f publish.xml" will build the XML Graphics Commons site and upload it to SVN. It has then to be checked out on people.apache.org to be deployed.

$Id$
-->
<project name="forrest-docs" default="main">

  <property name="build.work-dir" location="./build/forrest/work"/>
  <property name="build.log-dir" location="./build/forrest/log"/>

  <property name="getsrc.local.root-dir" location="."/>
  <!--property name="getsrc.svn.url" value="http://svn.apache.org/repos/asf/xmlgraphics/commons/trunk"/-->
  <target name="getsrc" depends="getsrc.clean-workdir, getsrc.local"/>
  
  <target name="build.fixCRLF" depends="build.forrest">
    <fixcrlf srcdir="./build/forrest-docs" eol="lf">
      <include name="**/*.htm*"/>
      <include name="**/*.css"/>
      <include name="**/*.xsl*"/>
      <include name="**/*.js"/>
      <include name="**/*.rdf"/>
      <include name="**/*.txt"/>
      <include name="**/*.xml"/>
    </fixcrlf>
  </target>
  
  <target name="build" depends="build.forrest, build.fixCRLF"/>

  <import file="../deploy.svn.settings" optional="true"/>

  <property name="deploy.svn.url" value="https://svn.apache.org/repos/asf/xmlgraphics/site/deploy/commons/"/>
  <target name="deploy" depends="deploy.svn"/>

  <property environment="env"/>
  <import file="${env.FORREST_HOME}/tools/forrestbot/core/forrestbot.xml"/>
</project>