<?xml version="1.0"?>
<project name="gs3-flax-ext" default="usage" basedir=".">

  <property name="flax.svn.root" value="https://svn.greenstone.org/flax"/>
  <property name="flax.checkout.path" value="${flax.svn.root}/trunk/flaxmain"/>

  <property name="build.home" value="${basedir}/build"/>
  <property name="global-svn-args" value=""/>
  <!-- greenstone3 paths -->
  <property name="web.home" location="${basedir}/../../web"/>
  <property name="web.lib" location="${web.home}/WEB-INF/lib"/>
    <!--- flax: the WordNet home -->
  <property name="wn.home" value="${web.home}/WEB-INF/classes/flax/WordNet"/>
  <property name="url" value="${default.server.protocol}://${tomcat.server}:${default.tomcat.port}${app.path}/flax"/>
  <!-- the gs3 prepare target included prepare-flax in its depends list -->

  <target name="compile">
    <!-- TODO add in actual compile command. the below is just the extra flax related part for the jar file from gs3 build.xml -->
  <jar destfile="${build.home}/gs3-flax.jar">
    <fileset dir="${build.home}">
      <include name="org/flax/**"/>
    </fileset>
    <manifest>
      <attribute name="Built-By" value="${user.name}" />
    </manifest>
  </jar>
  <copy file="${build.home}/gs3-flax.jar" todir="${web.lib}"/>
  </target>

  <target name="usage">
    <echo>This extension merely holds code cut out from greenstone3 and has not been made to work.</echo>
  </target>

  <target name="prepare-flax" description="check out flax source code from another repository" if="install.flax">
    <echo>checking out flax ...</echo>
    <mkdir dir="${basedir}/src/java/org/flax"/>
    <mkdir dir="${basedir}/src/java/org/greenstone/gsdl3/flax"/>
    <mkdir dir="${basedir}/src/java/org/greenstone/gsdl3/action/flax"/>
    <mkdir dir="${web.home}/WEB-INF/classes/flax"/>
    <mkdir dir="${web.home}/interfaces/flax"/>
    <mkdir dir="${web.home}/sites/flax"/>
    <mkdir dir="${basedir}/flax-resources"/>
    <mkdir dir="${basedir}/flax-lib"/>
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="checkout"/><arg value="${flax.checkout.path}/src/java/org/flax"/> 
      <arg value="src/java/org/flax"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="checkout"/><arg value="${flax.checkout.path}/src/java/org/greenstone/gsdl3/flax"/> 
      <arg value="src/java/org/greenstone/gsdl3/flax"/></exec> 
    <exec executable="svn"><arg value="checkout"/><arg value="${flax.checkout.path}/src/java/org/greenstone/gsdl3/action/flax"/>
      <arg value="src/java/org/greenstone/gsdl3/action/flax"/></exec>
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="checkout"/><arg value="${flax.checkout.path}/web/WEB-INF/classes/flax"/> 
      <arg value="${web.home}/WEB-INF/classes/flax"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="checkout"/><arg value="${flax.checkout.path}/web/interfaces/flax"/> 
      <arg value="${web.home}/interfaces/flax"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="checkout"/><arg value="${flax.checkout.path}/web/sites/flax"/> 
      <arg value="${web.home}/sites/flax"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="checkout"/><arg value="${flax.checkout.path}/flax-resources"/> 
      <arg value="flax-resources"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="checkout"/><arg value="${flax.checkout.path}/lib"/> 
      <arg value="flax-lib"/></exec> 
    <antcall target="flax-copy-del-files" />
  </target>
  
  <target name="flax-copy-del-files" description="copy some flax files into the appropriate greenstone3 directories and delete some unwanted greenstone stuff">
    <copy file="${web.home}/WEB-INF/classes/flax/flax.xml" todir="${web.home}/WEB-INF" overwrite="true" />
    <copy  todir="${web.home}/WEB-INF/classes" overwrite="true" >
      <fileset dir="${web.home}/WEB-INF/classes/flax">
	<include name="interface_flax*.properties"/>
      </fileset>
    </copy>
    <copy todir="${web.home}/WEB-INF/lib">
		    <fileset dir="${basedir}/flax-lib">
		       <include name="*.jar"/>
		    </fileset>	
    </copy>
    <!--<delete dir="${web.home}/sites/gateway"/>
    <delete dir="${web.home}/sites/localsite"/>-->
  </target>

  <target name="update-flax" description="update flax from repository">
    <echo>updating flax ...</echo>
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="update"/>
      <arg value="src/java/org/flax"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="update"/>
      <arg value="src/java/org/greenstone/gsdl3/action/flax"/></exec>
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="update"/>
      <arg value="src/java/org/greenstone/gsdl3/flax"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="update"/>
      <arg value="${web.home}/WEB-INF/classes/flax"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="update"/>
      <arg value="${web.home}/interfaces/flax"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="update"/>
      <arg value="${web.home}/web/sites/flax"/></exec>
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="update"/>
      <arg value="flax-resources"/></exec> 
    <exec executable="svn"><arg line="${global-svn-args}"/><arg value="update"/>
      <arg value="flax-lib"/></exec> 
      <antcall target="compile-core" />
  </target>

  <!-- ========================End of FLAX Targets ========================= -->
</project>
